Android屏幕适配方案

注:本文由DevStore作者@lh_qq投稿发布,转载请标明作者和出处。

该适配方法为百分比适配法:

以1920*1080的手机为例

宽度为:1080 取值为x1~x1080

高度为:1920 取值为y1~y1920

我们可以看到 1920*1080的 每一个像素点都是一一对应的

X10=10.0px;

y10=10.0px;

而我们现在又来看我们需要适配的机型,假设是800*480

我们将会看到800*480的它们的像素点不再是一一对应了

而是

X1=480/基准=480/1080=0.44

其他的分辨率也是类似的。。。。

现在我们已经知道适配的原理了,也能够算出适配的比例,

但一个屏幕有这么多像素点构成。难道我们要一个一个的去计算??

答案是 NO ~NO ~NO

作为程序员的我们,这么多计算量肯定是交给电脑完成涩。。。

在群里我已经上传了一个名叫:GenerateValueFiles.java的文件

里面已经有大神写好了计算的方法,我们只需要用就行了

现在我就教你们怎么使用它……..

1、 我们要将下载的这个文件,随意放在电脑盘符的根目录里。

之所以放在根目录,是为了方便后面操作

把这个文件打开后

将会看到 密密麻麻的一串串 代码。。。。我们不必要全部理解它代码

只需要理解两个地方就可以随心所欲的用了

第一处:

箭头表示那处,代表着是 你想要适配的机型,如果这个字符串里面没有,你可以加进去

当然,你加的话,要按照他那个格式加进去哈。

第二处

这里代表着是。你当前测试机的手机分辨率。。。。。如果你测试机分辨率不是这个,那么你就要修改这里

现在我们分析了这两处有用的地方,那么我们就紧接着开始使用了……..

我们用DOS命令直接运行它

刚刚我是把这个文件放在C盘根目录的,那么DOS命令是

确认输入正确后,按回车。。。用javac让它编译成class文件

现在 C盘根目录就会多一个对应的class文件

而DOS命令也将会显示

现在我们需要编译 class文件 输入命令符为:

猛击回车键 DOS页面就会出现:

当dos页面出现这种情况,你也就成功了一半了,现在我们再次查看C盘的根目录

就会发现多了一个res文件夹,打开文件夹就会发现,里面全是已经计算好的适配比例

现在我们可以把DOS命令页面关掉了,把这些生成的适配比例放在自己项目里面

现在就到了最关键的一步了,以前我们 写界面的时候大多数用的,

math 、fill 、wrap。

Math和fill虽然有差别,但实际效果都差不多的。不同分辨率手机上显示的效果是一样的

Wrap虽然它是自适应,但在不同的分辨率上,适应的有点不靠谱

假设我现在需要在屏幕中心有个按钮,宽度和高度为我们屏幕宽度的1/2,我可以怎么编写布局文件呢?

因为我的测试机分辨率是 1080*1920 宽度的一半则为 540,代码则为

1
2
3
4
5
6
7
8
9
10
<FrameLayout >
 
    <Button
        android:layout_gravity="center"
        android:gravity="center"
        android:text="@string/hello_world"
        android:layout_width="@dimen/x540"
        android:layout_height="@dimen/x540"/>
 
</FrameLayout>

不同分辨率手机显示的效果为:

能看出 它的宽高始终都为屏幕宽度的一半

据我测试 在1080*1920的测试机

1dp=x3

1dip=x3

1sp=x3

其他测试机,你们自己去测试

这个适配能适配 控件的大小、控件之间的间隔、控件字体的大小。。

适配的时候,就不要用什么wrap了。。。直接替换成X……..

只要在你的测试机看到是什么样,那么其他机型(java文件里面有的)也会是这样的

注:其中,需要用到的生成res的java文件下载地址为:http://ds.devstore.cn/dev_store/class_product/special_para_iamge/1465806274185/GenerateValueFiles(1).rar

  1. da shang
    donate-alipay
               donate-weixin weixinpay

发表评论↓↓