前往小程序,Get更优阅读体验!
立即前往
首页
学习
活动
专区
工具
TVP
发布
社区首页 >专栏 >Android利用SurfaceView显示Camera图像爬坑记(三)

Android利用SurfaceView显示Camera图像爬坑记(三)

作者头像
Vaccae
发布2019-07-25 14:36:01
1.3K0
发布2019-07-25 14:36:01
举报
文章被收录于专栏:微卡智享

前言

前一章《Android利用SurfaceView显示Camera图像爬坑记(二)》我们已经利用SurfaceTexture通过生成的Bitmap图片用canvas画出显示,最后最后留了个小尾巴,就是显示的图像并没有全屏,这一章就说一下怎么让其全屏。

全屏方式

这里就先直接说出结果,想要全屏显示就是两句,直接在canvas中画图的时候画了一个目标框形的大小即可。

代码语言:javascript
复制
 RectF rectF=new RectF(0, 0, canvas.getWidth(), canvas.getHeight());
 canvas.drawBitmap(cacheBitmap, null, rectF, null);

心路历程

直接想要实现上面结果的可以不用接着看这个,这里主要是我记录一下实现的过程,浪费了一个多小时吧。

最初觉得全屏显示的话,那我直接获取屏幕的宽度和高度,在生成图片的方法里面把图片的宽高重新定义一下就行了,然后我就先在定义了屏幕宽高的两个参数

接着在构造函数中加入获取屏幕宽高的方法

生成图片的nv21ToBitmap的方法参数中我们传入了canvas的宽和高

然后运行的结果直接就变下面这样了

从我们输出的日志看,PreviewSize的宽和高与canvas的宽和高前后不对,如下图

所以我就又宽高的输出倒过来试了一下,结果还是一样的,所以这个方法放弃。


后来在网上又找各种资料,大部分说的都是设置setPreviewSize的方法,如图

还有下面的

还有想到这个了

试了好几种,基本不是打开Camera后直接白屏了,就是这个缩放的比例也是奇怪,无全不是我想要的结果,一度无语中。

最后我就在想,即然我的图片已经生成好了,那是不是画的时候照的画布大小画就可以了,开始的思路应该是不对的,于是又各种查找,终于找到一个文章,如下

看完后我也是。。。。。一共两行的代码,折腾了一个小时,然后就用这个方法改为我们最上面的效果。

下面就是改完后的视频效果:

-END-

本文参与 腾讯云自媒体同步曝光计划,分享自微信公众号。
原始发表:2019-07-04,如有侵权请联系 cloudcommunity@tencent.com 删除

本文分享自 微卡智享 微信公众号,前往查看

如有侵权,请联系 cloudcommunity@tencent.com 删除。

本文参与 腾讯云自媒体同步曝光计划  ,欢迎热爱写作的你一起参与!

评论
登录后参与评论
0 条评论
热度
最新
推荐阅读
领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档