原生Camera设置的分析(二):分辨率的过滤

本文分析了原生Camera设置中分辨率过滤的三个步骤:获取底层支持的分辨率,过滤当前尺寸比例的分辨率,以及与上层已过滤分辨率比较。重点讨论了pref.filterUnsupported(supported)在过滤过程中的作用,以及pictureRatio.getValue()在筛选尺寸中的关键功能。对于第三步的必要性,作者提出了疑问。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

       分辨率的过滤问题总体思路分为三步,

 1、首先要读取底层所支持的所有分辨率,与上层支持的分辨率比较;

 2、然后过滤当前尺寸比例的分辨率;

 3、最后与上层已经过滤一次的分辨率再比较(我觉得第三步是不是多余的???)。

     主要代码如下:

if (pictureSize != null && pictureRatio != null) {
	//第一步:
    filterUnsupportedOptionsForPictureSize(group, pictureSize, sizeListToStringList(
            mParameters.getSupportedPictureSizes()), false,
            SettingChecker.ROW_SETTING_PICTURE_SIZE);
    //第二步:
    List<String> supportedForRatio = buildSupportedPictureSize(mContext, mParameters, pictureRatio.getValue());
    //第三步:
    filterDisabledOptions(group, pictureSize, supportedForRatio, false,
            SettingChecker.ROW_SETTING_PICTURE_SIZE);
}

    在第一步中,mParameters.getSupportedPictureSizes() 是用来获取底层所支持的分辨率,然后用函数sizeListToStringList()将其转化为String型。然后进入函数filte

评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值