0

Что я хочу:Как наложить пользовательский чертеж поверх SurfaceView, который используется в качестве предварительного просмотра камеры?

Я хочу сделать Camera активность (т.е. активность, которая показывает предварительный просмотр камеры), в которой имеет квадратную форму (это на самом деле немного сложнее форма, но я говорю, площадь для простота) накладывается на предварительный просмотр камеры, так что пользователь знает, где разместить камеру таким образом, чтобы конкретный квадратный реальный объект располагался внутри этой квадратной формы, наложенной на предварительный просмотр камеры.

Точно так же, как в изображении камеры есть форма лица в следующем изображении, чтобы пользователь мог поместить свое лицо туда.

enter image description here

Мое решение:

Я думал, имеющий FrameLayout, а затем с SurfaceView для камеры предварительного просмотра и VectorDrawable для формы, чтобы быть наложен как FrameLayout бы Z-порядок его детей, так что VectorDrawable будет наложено на SurfaceView.

Проблемы с ним:

Мне нужно мое приложение, чтобы быть совместимым с API 11 и выше. Поэтому мне пришлось бы использовать VectorDrawableCompat. Чтобы использовать VectorDrawableCompat, нам необходимо установить флаг AAPT. - source

Проблема в том, что везде в Интернете способ установить этот флаг для Android Studio. (например, описанный метод here) Несколько строк должны быть добавлены в файл build.gradle проекта.

Я не мог узнать, как установить этот флаг в Eclipse. Я продолжал поиск и в итоге установил плагин Eclipse Buildship для использования Gradle в Eclipse. Я следовал this guide. Когда я добавил природу Gradle в свой проект Android, я получил файл build.gradle. Я вставил код, чтобы включить этот флаг AAPT в нем , но это не помогло моей проблеме вообще.

ТАК ТЕПЕРЬ Я СМОТРЕТЬ ДЛЯ АЛЬТЕРНАТИВНОГО МЕТОДА, ЧТОБЫ ДОСТИГАТЬ МОЙ ЗАДАЧИ. ПОЖАЛУЙСТА, СКАЖИТЕ МЕНЯ, КАК МОЖНО СДЕЛАТЬ ЭТО, БЕЗ ИСПОЛЬЗОВАНИЯ VectorDrawableCompat?

+1

Почему вы не использовать PNG-файл вместо VectorDrawable? – nshmura

+0

Потому что это будет проблема для разных размеров экрана? @nshmura – Solace

+1

Да, но я думаю, что проблема мало. Я написал ответ, чтобы объяснить. – nshmura

ответ

1

Я согласен с тем, что VectorDrawable лучше, чем файл png. Но я думаю, что png приемлемо, потому что ImageView с размером dp автоматически масштабирует изображение.

Это пример:

<FrameLayout 
     android:layout_width="match_parent" 
     android:layout_height="match_parent"> 

    <SurfaceView 
      android:layout_width="match_parent" 
      android:layout_height="match_parent"/> 

    <ImageView 
      android:layout_width="100dp" 
      android:layout_height="100dp" 
      android:scaleType="fitXY" 
      android:src="@drawable/face_shape"/> 

</FrameLayout> 
+0

db размер? Что такое db? – Solace

+0

Не будет ли изображение пиксельным с масштабированием? – Solace

+1

Извините! Я был неправ.Это размер dp – nshmura