Я хотел бы увидеть изображение поверх 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 уже не было прозрачным).
Вот скриншот от сканера штрих-кода:
