安卓相机全屏预览方案

以下方案均为camera api的实现思路(camerax封装更简单)

一、全屏展示方案大致思路

1、预览用srufaceview,外部可用framelayout(方便添加ui),srufaceview居中

2、分辨率的话根据手机屏幕大小,选择相机硬件中提供的最合适的分辨率,根据分辨率修改srufaceview的宽度或高度(此时总有宽或高总有一个会超出屏幕,不用担心,因为srufaceview居中放在了framelayout中,会裁切)

二、AI归纳:

  1. 布局用FrameLayout包裹SurfaceView,设置gravity为center

  2. 根据屏幕尺寸,从相机支持的预览尺寸中选择宽高比

    最接近的那个

  3. 在SurfaceView的onMeasure中,根据相机预览尺寸计算

    View应该显示的大小。为了充满屏幕,会让一个维度

    (宽或高)超出屏幕范围

  4. FrameLayout会自动裁剪超出的部分,因为设置了

    gravity为center,所以裁剪是均匀的,不会偏向一边

这样就实现了充满屏幕、无黑边、无变形的预览效果。

相关推荐
jinanwuhuaguo6 小时前
截止到4月8日,OpenClaw 2026年4月更新深度解读剖析:从“能力回归”到“信任内建”的范式跃迁
android·开发语言·人工智能·深度学习·kotlin
JJay.7 小时前
Android Kotlin 协程使用指南
android·开发语言·kotlin
BLUcoding8 小时前
Android 布局介绍
android
summerkissyou19878 小时前
android-蓝牙-状态和协议值总结及监听例子
android·蓝牙
徒 花8 小时前
数据库知识复习05
android·数据库
提子拌饭13310 小时前
番茄时间管理:鸿蒙Flutter 实现的高效时间管理工具
android·flutter·华为·架构·开源·harmonyos·鸿蒙
4311媒体网10 小时前
帝国CMS二次开发实战:精准实现“最新资讯”标识与高亮判断
android
BLUcoding11 小时前
Android 轻量级本地存储 SharedPreferences
android
冬奇Lab11 小时前
Camera HAL3 接口:Android 相机的真正底牌
android·音视频开发·源码阅读
sensen_kiss11 小时前
CAN302 Technologies for E-Commerce 电子商务技术 Pt.6 市场营销与SEO(搜索引擎优化)
android·学习·搜索引擎