Android 屏幕适配方案 引入百分比

      大家拿到UI给的设计图以后,是不是抱怨过标识的都是px,我项目里面用dp,唉,和UI妹子讲dp的问题,UI MM也不理解,直接和你翻白眼 。为了解决这样的问题采用引入百分比的方式进行完美适配-------------------


其实我们的解决方案,就是在项目中针对你所需要适配的手机屏幕的分辨率各自建上面的一个文件夹。


比如480*320的分辨率为基准


可以看到x1 = 480 / 基准 = 480 / 320 = 1.5 ;

<?xml version="1.0" encoding="utf-8"?>
<FrameLayout xmlns:android="http://schemas.android.com/apk/res/android"
    android:layout_width="match_parent"
    android:layout_height="match_parent">
    <Button
        android:layout_width="@dimen/x160"
        android:layout_height="@dimen/y160"
        android:layout_gravity="center"
        android:gravity="center"
        android:text="适配开始了" />
</FrameLayout>

可以看到我们的宽度和高度定义为x160,其实就是宽度的50%;

这样写出的布局基本就可以全分辨率适配了

好了,有个最主要的问题,我们没有说,就是分辨率这么多,尼玛难道我们要自己计算,然后手写?

2、自动生成工具(也可以自己写)

下载请

链接: https://pan.baidu.com/s/1jIJwAhg 密码: g2br

内置了常用的分辨率,默认基准为480*320,当然对于特殊需求,通过命令行指定即可:

例如:基准 1280 * 800 ,额外支持尺寸:1152 * 735;4500 * 3200;

java -jar 文件名.jar 800 1280 7351152_3200,4500



自动生成了res目录所有的文件夹COPY到项目当中

因为对于没有生成对应分辨率文件的手机,会使用默认values文件夹,如果默认values文件夹没有(即没有对应的分辨率、没有对应dimen)就会报错,从而无法进行屏幕适配。
注意对应单位改为dp,而不同于上面的px。因为不知道机型的分辨率,所以默认分辨率文件只好默认为x1=1dp以保证尽量兼容(又回到dp老方法了), 这也是这个解决方案的一个弊端

总结

使用上述的适配方式,应该能进行90%的适配了,但其缺点还是很明显:

  • 由于实际上还是使用px作为长度的度量单位,所以和google的要求使用dp作为度量单位会有所背离
  • 必须尽可能多的包含所有分辨率,因为这个是使用这个方案的基础,如果有某个分辨率缺少,将无法完成该屏幕的适配
  • 过多的分辨率像素描述xml文件会增加软件包的大小和维护的难护

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值