写在前面:这一篇主要讲的是实际项目里怎么用 百分比适配方法 完成项目里面的不同手机不同分辨率的适配。
一些其他的方法和一些关于手机适配的概念放在下一篇博客写,为了凑字数?? 哈哈哈。
先提供一个可以查询主流手机分辨率的网站:http://screensiz.es/phone
下一步下载一个jar包 , 下载地址:
https://github.com/hongyangAndroid/Android_Blog_Demos/tree/master/blogcodes/src/main/java/com/zhy/blogcodes/genvalues
下载之后呢 , 准备工作就做完了。
现在先说实际想要什么吧 , 我瞎编一个 , 我想在我的手机里面画出 在50%宽 50%高为起点的 25%宽 25%高的矩形图片。
然而,我们用权重就可以轻易做到 , 但是实际项目里面如果是要求 49%和 26% 呢? 这样再做 权重很麻烦 , 而且对于之后的布局改动也很麻烦 , 所以就要用到百分比适配的方法。
实际应该出现的效果图如下:
第一步:找到自己测试机的手机分辨率 , 比如说我的测试机就是1080 * 1920 的(不清楚手机分辨率是多少的,我貌似写过一个工具类可以查分辨率的 , 找一下吧 , 要是找不到就是我忘写了 , 上网找一下吧 , 哈哈 , 就是这么随意)。
第二步:生成对应的文件夹。
这个是生成文件的指令:java -jar xx.jar width height width,height_width,height
能看懂德大神 这一步就可以直接略过了 。。。。
现在把下载的那个jar包放到C:\Users\Administrator 目录下面(要是知道怎么cd到其他路径的话就不用这个操作)
然后打开cmd 先解释一下那个指令:
java -jar jar包的文件名 作为基准的宽 基准高 而外支持的尺寸一的基准宽 , 而外一基准高_而外支持的尺寸二的基准宽 , 而外二基准高........................
以此类推。
现在记住为了方便就设置成 100 *100 把 这个无所谓 , 最好根据UI给你的原型来设置基准。
那我要输入的指令就是
java -jar autolayout.jar 100 100 1080, 1920
然后就会生成一个res的文件夹 里面都是value加分辨率的文件夹 如下图:
第三步:放入AS项目里面
先打开values-100x100 文件夹 里面有一个lay_x.xml 和 lay_y.xml 两个文件 , 先把项目切换到Project区间,
res下 value文件夹 把这两个粘贴进去 如下图:
然后再把 1080 * 1920 那个文件夹 粘贴到res 下面 搞定~
第四步: 画布局
布局我们就把 项目想象成是一个100 * 100 的正方形手机 然后 想用到多少就 x后面接上数字。
<?xml version="1.0" encoding="utf-8"?>
<LinearLayout
xmlns:android="http://schemas.android.com/apk/res/android"
xmlns:app="http://schemas.android.com/apk/res-auto"
xmlns:tools="http://schemas.android.com/tools"
android:layout_width="match_parent"
android:layout_height="match_parent"
tools:context="com.example.administrator.testdelete.MainActivity">
<ImageView
android:layout_width="@dimen/x25"
android:layout_height="@dimen/y25"
android:layout_marginLeft="@dimen/x50"
android:layout_marginTop="@dimen/y50"
android:background="#000000"/>
</LinearLayout>
代码很简单就是 之前说的样子 不过我还把状态栏和标题栏隐藏了 因为这样直观一些(不知道怎么隐藏??看我其他博客啊 , 里面有写(我也是够贱的 哈哈哈))
最后运行一下,效果如下:
纳尼???你TM再逗我??这和你说好的不一样啊!!!!
冷静 , 这可是有原因的 , 因为这个手机又虚拟按键 , 但是最后显示的时候是按照除去虚拟按键后的屏幕大小。
所以需要把高度减去144(测试了三四个手机的虚拟按键宽度都是144)
所以实际分辨率是1080 * 1776
重复第二步第三步
最后运行如下:
(不要在意那个白字 那个是CSDN的水印。。。。。刚开始吓我一跳 以为是灵异事件 , 妈呀)
最后完成想要的效果了 哈哈哈 收。
至此 , 完成百分比适配
优点:
对于“精密”的布局比权重 相对布局简单的很多
与之前的权重相对布局也不冲突
后续布局上面的修改很简单
-------------------------------------------Ps--------------------------------------------------------------
别问我为什么测试机展示是用手机照相 ,因为测试机有时候连不上公司网 。
别问我为什么不把下一篇的关于屏幕适配理论的文章贴一个链接 , 因为懒。