TextureView 实现Camera预览

本文介绍了如何使用TextureView实现Camera预览,对比了TextureView与SurfaceView在实现预览时的相似点和区别。TextureView虽然需要在硬件加速窗口中使用,但它支持变换操作,相比SurfaceView更适合需要UI交互的场景。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

一、前言

在前面的博客中Camera 拍照中我们其实已经介绍过如何通过SurfaceView实现Camera的预览;今天闲着没事就写写怎样通过TextureView实现Camera预览,并介绍下TextureView与SurfaceView的区别。

二、知识结构

1、相似点

我们可能经常使用SurfaceView来实现Camera预览;
1:通过SurfaceViewHolder为SurfaceView设置一个当SurfaceView被创建成功后的回调借口;
2:在自定义的回调接口sufaceCreate()中实现Camera的Parameters设置及开启Camera的预览;在surfaceDestroy()中关闭Camera、释放资源等;

TextureView实现Camera预览的步骤与SurfaceView大体相同;只不过是回调方法不一样了而已;在TextureView中变成了:

textureView.setSurfaceTextureListener(new SurfaceTextureListener());

2、区别:

1、SurfaceView的工作方式是创建一个应用窗口之上的新窗口。这种方式的效率非常高,因为SurfaceView窗口刷新的时候不需要重绘应用程序的窗口;其实SurfaceView就像一个玻璃窗口,通过它我们能看到Surface上的数据;而我们如果想操作Surface,在上面绘制数据,需要通过SurfaceHolder实现。但SurfaceView有一个不便之处:由于SurfaceView的内容不在应用窗口上,所以不能使用变换(平移、缩放、旋转等),也难以放在ListV

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值