FitScreen-Android屏幕适配的一种方案

FitScreen

Android屏幕适配的一种方案,包含自动生成xml文件jar包,自动替换dp、sp的jar包。顺便附带上源码。

GitHub链接FitScreen


背景说明

最开始使用dp设置控件尺寸,在hornor v8 1440x2560的手机显示正常,到了samsung Galaxy On7 1080x1920的手机上显示爆炸。。。(左hornor v8 1440x2560, 右samsung Galaxy On7 1080x1920)

2k 1080p

在尝试了N久还是没得结果的情况下,看到一个GitHub上面有一个shell写的脚本可以生成这些文件,奈何拉下来跑了一下没成功,向author发了封邮件也没有结果,自己看了看源码也搞不明白(没学过shell…而且很慢)。想想之前看了鸿洋大神的一篇博客准备自己来搞事情。

本方案在参考多位前人的适配方案下,自己对android屏幕适配做了一些总结。

适配方式

最小宽度(values-swxxxdp)形式。不同于生成不同分辨率对应px值,这个方案通过生成对应的dp、sp值来进行适配。

  • 根据公式dp= 160*屏幕宽度px/dpi,得到的就是上面xxx的值。

    dpi可以通过代码获取

DisplayMetrics displayMetrics = getResources().getDisplayMetrics();
Log.d(TAG," densityDpi is "+displayMetrics.densityDpi);
  • 安卓手机dpi,分为 120(ldpi)、160(mdpi)、213、240(hdpi)、280、320(xhdpi)、360、400、 420、480(xxhdpi)、560、640(xxxhdpi);

  • 一般为以上值。比如我的honor手机计算得到dp是360,Samsung计算得到dp是411,所以我创建了两个values文件夹,values-sw360dp、values-sw411dp,手机会自动找到与其对应的values文件夹。

  • 如需了解更多,请自行google。

适配后

last-2k last-1080

使用姿势

我已经将jar文件(jar包下)以及java文件放入仓库中,提供源码进行查看(src包下)。具体请进GitHub查看。

生成对应的文件夹

  • 将GenerateFile.jar下载下来放入某个目录下,cmd输入java -jar GenerateFile.jar xxx w1_w2...
  • xxx为基础宽度,必须为整数。w1 w2为需要其他的宽度值,同样需要整数。
  • 默认基础宽度360,还有另外两个320、411。如果不需要设置,忽略xxx以及w1、w2,直接输java -jar GenerateFile.jar 回车即ok。
  • 说明:为什么要基础宽度?举个栗子,UI美眉给你的标注图为750x1334,这个是iOS的标注尺寸,对应Android里面可以看成720x1280,看下图,根据上面的公式计算出来的dp值就是360。如果你将360设置为基础宽度,你就可以正常使用dp值,例如320、411的就会自动进行缩放。

例如:
1. 我将GenerateFile.jar放入桌面,打开cmd切换到桌面目录,输入命令,回车即可生成res文件夹。
GenerateFile.jar

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

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

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值