专栏首页微卡智享Android利用SurfaceView显示Camera图像爬坑记(三)

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

前言

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

全屏方式

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

 RectF rectF=new RectF(0, 0, canvas.getWidth(), canvas.getHeight());
 canvas.drawBitmap(cacheBitmap, null, rectF, null);

心路历程

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

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

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

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

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

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

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


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

还有下面的

还有想到这个了

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

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

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

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

-END-

本文分享自微信公众号 - 微卡智享(VaccaeShare),作者:Vaccae

原文出处及转载信息见文内详细说明,如有侵权,请联系 yunjia_community@tencent.com 删除。

原始发表时间:2019-07-04

本文参与腾讯云自媒体分享计划,欢迎正在阅读的你也加入,一起分享。

我来说两句

0 条评论
登录 后参与评论

相关文章

  • 实战|流式代码封装及ViewBadger角标的应用(附源码)

    本来这章只是想讲一个Android中的角标ViewBadger的使用,在写的过程中想起来前面文章中Glide的开源库加载网络图片用一行代码就可以直接实现了,这种...

    Vaccae
  • 【对比评测】OpenCV利用颜色分割获取数量

    还记得这个图吗?前阵子有篇文章《【综合练习】C++OpenCV实战---获取数量》里面中我们利用学到了一些OpenCV的基本知识进行了数量的提取。当时算是完成了...

    Vaccae
  • LeetCode|200.岛屿数量--C++题解

    这个是在边学习算法的时候正好也去LeetCode进行每日一题的研究,没想到自己做的算法第一题就是这个,正好也可以拿出来说,因为这个是前面《实战|OpenCV结合...

    Vaccae
  • 学习计算机基础必读的4本经典入门书籍,自学编程必备书单!

    新手学习计算机并非易事,作为一个自学编程的过来人,深知打好计算机基础的重要性,缺少了坚实的计算机的基础,往往你也难以往上走,即使学了再多高大上的技术,也都是在沙...

    黄小斜
  • 如何在Ubuntu上安装和使用Hugo

    Hugo是由Go语言实现的静态网站生成器。简单、易用、高效、易扩展、快速部署。Hugo这样的选择允许您简化堆栈,编写友好的markdown,处理更新和自定义内容...

    信姜缘
  • 快速理解 MySQL 事务隔离级别

    在这个例子中根本不存在 id 为 1,并且 age 为 21 的记录,事务1读到了脏数据。

    dys
  • 【ocata】计算节点的 neutron 报错

    挂起/关闭实例时,/var/log/neutron/linuxbridge-agent.log中报错,但不影响使用

    yaohong
  • 【CSS】:颜色、背景

    CSS 数据类型 <color> 表示一种标准RGB色彩空间(sRGB color space)的颜色。一种颜色可以用以下任意的方式来描述:

    WEBJ2EE
  • 混合还是不混合?是正确的云问题吗?

    只要有混合云,那么关于混合云的功效的争论可能会持续下去。纯云计算的倡导者表示,混合云只是供应商寻求保留其传统平台的一种营销手段,而混合云支持者则表示他们只是满足...

    静一
  • 你认同吗?玩家畅谈手游电子竞技的未来发展

    17173玩家投稿,作者:一只老烟猫】   大家好,我是老猫。   伴随着《皇室战争》(ClashRoyale,以下简称CR)邀请赛进行地如火如荼,手游电竞也让...

    李海彬

扫码关注云+社区

领取腾讯云代金券