Android 屏幕适配方案(实战篇)

写在前面:这一篇主要讲的是实际项目里怎么用   百分比适配方法  完成项目里面的不同手机不同分辨率的适配。

一些其他的方法和一些关于手机适配的概念放在下一篇博客写,为了凑字数??   哈哈哈。


先提供一个可以查询主流手机分辨率的网站: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--------------------------------------------------------------

别问我为什么测试机展示是用手机照相 ,因为测试机有时候连不上公司网 。 

别问我为什么不把下一篇的关于屏幕适配理论的文章贴一个链接 , 因为懒。




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

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

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值