TextureView实现视频界面动态显示红色方框
来源:互联网 发布:网狐手机棋牌游戏源码 编辑:程序博客网 时间:2024/05/17 03:35
上一篇讲过用TextureView实现视频界面的时候,
不能使用SurfaceView的lockCanvas接口直接在视频界面上绘制自己的东西,比如红色方框
今天好好地研究了一下,终于找到好方法解决了,首先我没有使用SurfaceView,
因为我觉得SurfaceView不好用,而且对SurfaceView进行View的一些例如缩放,设置透明度,动画之类的操作有很多问题
但是TextureView又不能像SurfaceView那样使用lockCanvas接口直接在TextureView上绘制东西,
至于为什么TextureView不能,大家可以看我的上篇博客链接1
好了既然SurfaceView效果不好,TextureView又不能用SurfaceView的方法,那只有另想办法了
我的思路是用一个背景透明的自定义View来绘制红色方框覆盖到视频界面上,这样可以达到想要的效果
是的,没错,下面开始码代码:
<TextureView android:id="@+id/surfaceview_main" android:layout_width="match_parent" android:layout_height="match_parent" android:tag="0" /> <com.example.ui.ShowRectView android:id="@+id/id_show_rect" android:layout_width="match_parent" android:layout_height="match_parent" android:visibility="visible" />
遗憾的是,无论我怎么把后面覆盖的ShowRectView背景设置为透明,都不能达到我想要的效果,
始终是ShowRectView一片漆黑挡住了后面的视频界面。
然而当我设置了一下ShowRectView的alpha属性,哪怕是接近1的0.9,
View就变成完全透明,View绘制的红色方框也可以清晰的显示在视频界面上。
最后代码改成:
<TextureView android:id="@+id/surfaceview_main" android:layout_width="match_parent" android:layout_height="match_parent" android:tag="0" /> <com.example.ui.ShowRectView android:id="@+id/id_show_rect" android:layout_width="match_parent" android:layout_height="match_parent" android:alpha="0.9" android:visibility="visible" />
最终效果如图:
最后也问一个问题,
为什么在这里我自己写的自定义View,没有设置alpha属性的时候就是一片漆黑挡住视频界面,而当我设置了alpha属性,哪怕接近于1的0.9,View就完全透明了?
0 0
- TextureView实现视频界面动态显示红色方框
- TextureView实现视频播放
- 用TextureView实现视频录制
- TextureView替换VideoView实现视频播放
- TextureView+MediaPlayer实现在线短视频播放
- MediaPlayer+TextureView实现小视频居中(不拉伸)播放
- Android使用TextureView播放视频
- TextureView+MediaPlayer播放本地视频
- MediaPlayer+TextureView全屏播放视频
- MediaPlayer+TextureView全屏播放视频
- myOpenChord 界面数据后台线程获取,动态显示实现
- TextureView 实现Camera预览
- 微信朋友圈短视频控件的实现, TextureView的基本使用。
- 用MediaPlayer+TextureView封装一个实现全屏、小窗口的视频播放器
- js动态显示时间 时分秒设置为红色
- 轻轻松松实现动态界面!
- 界面显示代码实现
- TextureView
- String类(二)
- 《Oracle DBA 高可用、备份恢复与性能优化》目录
- 性能测试初步排查方法
- struct、union、字节对其、大端小端存储总结
- XML解析
- TextureView实现视频界面动态显示红色方框
- 【Nginx】location 匹配规则详解
- NSArray
- poj 2385 Apple Catching dp
- 磁盘 IO 性能 调优 多线程 总结
- Java注解Annotation基础
- sqldev_migration
- IOS中用正则表达式判断输入的内容为8-16位且同时包含数字和字母
- Android下拉刷新ListView设计