android 常见分辨率率,Android屏幕分辨率占有率分析及应用

针对Android屏幕分辨率碎片化问题,开发者可以通过提供三种不同高宽比的图片来覆盖大部分用户。根据友盟统计,1.66、1.52和1.77高宽比的屏幕占据了近91%的份额。通过动态计算手机屏幕比例并匹配相应的图片资源,使用fitXY的scaleType,可以最大限度地避免图片失真。设计人员需提供对应比例的三套图片,程序在运行时选择最适合的图片加载。

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

Android屏幕分辨率各种各样,碎片化严重,开发者苦不堪言,转身看看iOS开发同学,只要适配2个尺寸的屏幕就好了,= =!

但我们总是能克服的对不,假如我们现在有这么一个需求:

我们将满屏显示一张网络图片,希望它不要失真或者被裁剪!

怎么做?先看看友盟的统计:

排名分辨率高宽比占有率
1800*4801.6637.7%
2480*3201.525.4%
3854*4801.7799.5%
41280*7201.777 5.6%
5960*540 1.7775.6%
6320*2401.3333.1%
71280*8001.62.5%
81024*6001.7061.3%
9960*6401.50.9%
101024*7681.30.5%
11other?4.7%

让我们合并下高宽比约等项,再排名:

排名高宽比占有率
11.6~1.662.5%+37.7%=40.2%
21.525.4%+0.9%=26.3%
31.706~1.7791.3%+8.8%+5.6%+9.5%=25.2%
41.3~1.3330.5%~3.1%=3.6%
5?4.7%

可以看出前三项占了91%!!!,况且1.333的屏幕是320*240这种小屏幕,好古董的屏幕,而且未知项中可能还包含前三项中的可能,所以如果我们忽略一些细节的话,最终情况是这样的:

排名分辨率高宽比占有率
1800*4801.6640.2%
2480*3201.526.3%
31280*7201.77725.2%

有什么用呢?

结论:假如这张网络请求下来的图片是设计师给出的,就请设计师对应着表3给出3套图,程序中我们动态算出手机屏幕的高宽比,根据高宽比对应选出最合适的图片,将scaleType设置为fitXY,这样就能做到最大程度的不失真了。

给一个写好的枚举类

enum AspectRatio {

SCALE_15, SCALE_166, SCALE_177;

public static AspectRatio getAspectRatio(float h2w) {

if (h2w <= 1.5f) {

return AspectRatio.SCALE_15;

} else if (h2w > 1.5 && h2w <= 1.67) {

return AspectRatio.SCALE_166;

} else if (h2w > 1.67) {

return AspectRatio.SCALE_177;

} else {

return AspectRatio.SCALE_166;

}

}

}

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值