官方demo中的TextureView中重写了onMeasure方法,如下:

@Override

protected void onMeasure(int widthMeasureSpec, int heightMeasureSpec) {

super.onMeasure(widthMeasureSpec, heightMeasureSpec);

int width = MeasureSpec.getSize(widthMeasureSpec);

int height = MeasureSpec.getSize(heightMeasureSpec);

if (0 == mRatioWidth || 0 == mRatioHeight) {

setMeasuredDimension(width, height);

} else {

if (width < height * mRatioWidth / mRatioHeight) {

setMeasuredDimension(width, width * mRatioHeight / mRatioWidth);

} else {

setMeasuredDimension(height * mRatioWidth / mRatioHeight, height);

}

}

}

这段代码使得TextureView在宽高都不超过手机屏幕的情况下最大化显示。

解决方案是,让TextureView总是达到最大边界,超出部分不进行预览(实际上还是能拍到的)。代码如下:

@Override

protected void onMeasure(int widthMeasureSpec, int heightMeasureSpec) {

super.onMeasure(widthMeasureSpec, heightMeasureSpec);

int width = MeasureSpec.getSize(widthMeasureSpec);

int height = MeasureSpec.getSize(heightMeasureSpec);

if (0 == mRatioWidth || 0 == mRatioHeight) {

setMeasuredDimension(width, height);

} else {

if (width > height * mRatioWidth / mRatioHeight) { //注意这里骚操作,替换"小于号"为"大于号"

setMeasuredDimension(width, width * mRatioHeight / mRatioWidth);

} else {

setMeasuredDimension(height * mRatioWidth / mRatioHeight, height);

}

}

}

实际上就是把判断条件中的 "" 即可,天知道这一小段代码害惨多少程序员。。

android camera分辨率设置,请问如何使用camera2设置全屏preview,要求适配所有屏幕尺寸?...相关推荐

  1. 【Android RTMP】Android Camera 视频数据采集预览 ( 图像传感器方向设置 | Camera 使用流程 | 动态权限申请 )

    文章目录 安卓直播推流专栏博客总结 一. Camera 传感器方向简介 二. Camera 图像传感器横向显示数据 三. Camera 图像传感器纵向显示数据 四. 设置 Camera 预览数据方向 ...

  2. android gridview设置高度,android设置GridView高度自适应,实现全屏铺满效果

    使GridView每个item的高度自适应拉伸,达到整个GridView刚好铺满全屏的效果. public static void setGridViewMatchParent(GridView gr ...

  3. 计算机屏幕尺寸不是全屏,为什么把电脑显示器分辨率调成1366X768后网页不能全屏显示呢?...

    为什么把电脑显示器分辨率调成1366X768后网页不能全屏显示呢?以下文字资料是由(历史新知网www.lishixinzhi.com)小编为大家搜集整理后发布的内容,让我们赶快一起来看一下吧! 为什么 ...

  4. android camera 分辨率,Android:相机帧分辨率大于640x480(Android: camera frame resolution larger than 640x480)...

    Android:相机帧分辨率大于640x480(Android: camera frame resolution larger than 640x480) 在Android中,您需要将Surface设 ...

  5. android实现多画面播放,可无缝切换小窗/全屏的android播放器实现

    效果: 普通模式多画面 / 全屏播放 小窗模式 布局和拖拽功能介绍 普通窗口下的视图层级关系 将AutoMonitorPlayer作为控件时,layout图层关系如上图.AutoMonitorPlay ...

  6. android屏幕适配的五种方式_讲一讲Android 9.0系统的新特性,对刘海屏设备进行适配...

    黑客技术点击右侧关注,了解黑客的世界! Java开发进阶点击右侧关注,掌握进阶之路! Python开发点击右侧关注,探讨技术话题!作者丨郭霖来源丨郭霖(guolin_blog) 其实Android 9 ...

  7. Android:浏览图片,点击放大至全屏效果

    最近做一个项目类似于QQ空间,做到照片浏览的功能,对于QQ空间中点击图片放大至全屏,感觉效果很赞,于是也做了个类似的效果.如下. 我不知道QQ那个是怎么做的,我的思路如下: 首先,从图片缩略界面跳转到 ...

  8. android 按键铺满屏幕,安卓全屏状态下键盘充满屏幕留不出ui控件的解决办法附edittext和键盘的属性...

    1.我们先看看常用和不常用的属性值(Edittext) android:inputType参数类型说明 android:inputType="none"--输入普通字符 andro ...

  9. Android学习之Android 5.0分享动画实现微信点击全屏效果

    Android5.0过渡动画,请看 http://blog.csdn.net/qq_16131393/article/details/51112772 今天用分享动画实现微信点击全屏效果 本文源代码下 ...

最新文章

  1. 使用 PHP 构建的 Web 应用如何避免 XSS 攻击
  2. HDOJ 3709 Balanced Number
  3. activiti实现跳转节点的方法
  4. ofbiz 分开默认数据库
  5. 手机端连线题html5,基于Canvas的html5连线题
  6. php百度搜索接口api,百度开放平台API调用
  7. node下运行js文件实时更新文件变化
  8. win10网络计算机删除,手把手教你彻底删除win10系统自带的微软拼音输入法-网络教程与技术 -亦是美网络...
  9. 编程篇(002)-js实现一个打点计时器
  10. 计算机网络之IP协议与以太网
  11. AndroidStudio模拟器全面屏皮肤
  12. java小游戏-超级玛丽
  13. assertThat使用方法
  14. 技术创业者必读:从验证想法到技术产品商业化的全方位解析
  15. 当年,我被智联招聘坑惨了!
  16. 斯隆奖获得者李博:从博弈论出发,和「偶像」并肩的感觉很好 | 青源专栏
  17. 我与小娜(20):去LIGO,探秘光子接力赛
  18. 4.BLDC电机控制算法
  19. MTK平台thermal介绍
  20. 2021年中国政府引导基金设立数量、目标规模、认缴规模及分布[图]

热门文章

  1. QT的QQuickImageProvider类的使用
  2. 新手制作bom表格教程_抖音短视频怎么制作?这里有全部最新教程+指导,新手0基础上手!...
  3. IntelliJ IDEA2017 修改缓存文件的路径(转载:https://www.cnblogs.com/acm-bingzi/p/ideaCachePath.html)
  4. Scala模式匹配,case 字符串,case 匹配类型,case 匹配数组,case 匹配List,case 匹配元组,case匹配case class和case object
  5. Spring管理session的一些认识和用法心得
  6. Java的calendar类用法
  7. code vs 集成tfs_关于编译器和集成开发环境,一文给你讲明白!
  8. python微服务监控_如何用zabbix监控微服务
  9. C++中结构体、联合体、枚举的区别
  10. Android持久化存储(1)文件存储