我想要的是什么:
我想制作一个Camera
活动(即一个显示相机预览的活动),其中有一个方形(它实际上有点复杂的形状,但为了简单起见我说方形 )被覆盖在相机预览上,以便用户知道相机的位置,使得特定方形的真实物体位于覆盖在相机预览上的方形内部。
就像下图中的相机预览中有一个脸部形状一样,这样用户就可以将脸放在那里。
我的解决方案:
我想过FrameLayout
,然后让SurfaceView
用于相机预览,并VectorDrawable
用于覆盖形状,因为FrameLayout
会对其进行Z顺序这些孩子VectorDrawable
最终会叠加在SurfaceView
上。
问题:
我需要我的应用与API 11及更高版本兼容。所以我必须使用VectorDrawableCompat
。要使用VectorDrawableCompat
,我们需要设置AAPT标志。的 - source
问题在于网络上的任何地方,设置此标志的方式都适用于Android Studio。 (如描述的方法here)将几行添加到项目的build.gradle文件中。
我无法找到如何在Eclipse中设置此标志。我一直在搜索,最后安装Eclipse Buildship插件以在Eclipse中使用Gradle。我跟着this guide。当我将Gradle特性添加到我的Android项目中时,我确实得到了一个build.gradle
文件。我粘贴了代码以在其中启用AAPT标记但它根本没有帮助我解决问题。
现在我正在寻找一种替代方法来实现我的任务。请不要告诉我如何使用VectorDrawableCompat
?
答案 0 :(得分:1)
我同意VectorDrawable优于png文件。 但我认为png是可以接受的,因为具有dp大小的ImageView会自动缩放图像。
这是一个例子:
<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>