我想知道如何在相机预览上添加剪影。到目前为止,我已经完成了以下示例,它只是预览相机。
http://developer.android.com/reference/android/view/TextureView.html http://developer.android.com/reference/android/view/TextureView.html
我正在尝试进行相机预览,其中显示了一个剪影,以便使用该应用程序的人了解应该在哪里拍摄照片,然后单击一个按钮,拍摄照片,当然没有剪影图片中。
如何才能做到这一点?我似乎找不到任何有关如何在纹理视图上放置叠加层的示例。
使用中的示例TextureView docs http://developer.android.com/reference/android/view/TextureView.html您已链接,我们只需创建一个布局 XML 文件来保存我们的TextureView
并覆盖ImageView
in a FrameLayout
。然后我们调用Activity
's setContentView()
方法使用此布局的资源 ID,而不是动态创建的TextureView
在示例中。
布局文件,main.xml
:
<FrameLayout xmlns:android="http://schemas.android.com/apk/res/android"
android:layout_width="match_parent"
android:layout_height="match_parent">
<TextureView android:id="@+id/texture_view"
android:layout_width="match_parent"
android:layout_height="match_parent" />
<ImageView android:id="@+id/image_view"
android:layout_width="match_parent"
android:layout_height="match_parent"
android:background="#00000000"
android:src="@drawable/ic_launcher" />
</FrameLayout>
和样品Activity
:
public class LiveCameraActivity extends Activity
implements TextureView.SurfaceTextureListener {
private Camera mCamera;
private TextureView mTextureView;
@Override
protected void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
setContentView(R.layout.main);
mTextureView = (TextureView) findViewById(R.id.texture_view);
mTextureView.setSurfaceTextureListener(this);
}
// The TextureView.SurfaceTextureListener methods
// are the same as shown in the example.
...
}
覆盖层ImageView
布局中使用默认启动器图标作为其源图像,因为它具有透明度,至少在我的 IDE 上是这样。稍后您将用您的剪影替换该图像。这ImageView
,列在TextureView
,将出现在其顶部,因为View
s 的绘制顺序与它们在布局中列出的顺序相同,第一个View
列出在底部;即 z 轴上距您最远的位置。
In the Activity
,我们只是将布局加载为内容View
,并获得对TextureView
在那里创建的。其他一切都一样。
本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)