Я хотел бы увидеть изображение поверх Camera SurfaceView\preview. Как мне это сделать? Любые примеры?
Предварительный просмотр камеры с прозрачным изображением выше
Ответ 1
Отличный пример можно найти в ZXing, Сканер штрих-кода.
То, что они делают, это использование FrameLayout
для SurfaceView
и их пользовательский ViewfinderView
, чтобы как SurfaceView
, так и ViewfinderView
охватывали весь экран:
<FrameLayout xmlns:android="http://schemas.android.com/apk/res/android"
android:layout_width="fill_parent"
android:layout_height="fill_parent">
<SurfaceView android:id="@+id/preview_view"
android:layout_width="fill_parent"
android:layout_height="fill_parent"
android:layout_centerInParent="true"/>
<com.google.zxing.client.android.ViewfinderView
android:id="@+id/viewfinder_view"
android:layout_width="fill_parent"
android:layout_height="fill_parent"
android:background="@color/transparent"/>
</FrameLayout>
Обратите внимание на значения fill_parent
в layout_height
и layout_width
для обоих представлений.
И затем они рисуют пользовательские вещи в ViewfinderView.onDraw()
, только поверх того, что отображается при просмотре камеры.
Если вы не хотите ничего рисовать, но просто используйте предопределенное изображение, используйте ImageView
вместо ViewfinderView
. Вы можете подумать о вызове метода setAlpha
, чтобы сделать ваше изображение прозрачным (если drawable уже не было прозрачным).
Вот скриншот от сканера штрих-кода: