Android屏幕适配dp、px两套解决办法

本文总结了Android屏幕适配的dp和px两种方法,包括px适配的720px基准法和dp适配的360dp基准法。通过生成不同尺寸的values文件夹和dimens.xml,实现屏幕尺寸的自动匹配。同时提供了bat脚本和源码供读者参考和使用。
摘要由CSDN通过智能技术生成

“又是屏幕适配,这类文章网上不是很多了吗?”

我也很遗憾,确实又是老问题。但本文重点对网上的各种方案做一个简短的总结,和具体使用方法。

若想了解具体Android设备适配的前世因果,请阅读hongyang文章:http://blog.csdn.NET/lmj623565791/article/details/45460089


据我的总结,屏幕适配可以有两种方法适配,dp和px,一一讲解。


一、PX适配。

现在常用的屏幕尺寸为1280x720,一般美工也会根据这个尺寸给图。

图上标注的都是px,而android里面推荐使用的单位为dp。

相同的屏幕尺寸,不同的密度比例,可能会要用到不同的dp值。

这个转换很痛。


那么,省着点吧,对于1280x720的屏幕,我们若给宽度为720px是不是就占满屏幕了呢?对于1920x1080的屏幕,我们宽度给1080是不是就占满了你?

我们以1280x720为基准,把所有的宽度切成720份,高度切成1280份,其他的尺寸基于这个基准等比缩放。。。。。这么闹嗑真费劲,看图


对于1280x720的屏幕,宽度给x720变量的值即占满屏幕。

万一用户的手机屏幕为800x480呢?看下图:


万一是1920x1080呢?看图:


understand?根据不同的屏幕,x720变量会代表对应的px值,其他的变量也一样。dimens_y.xml文件也一样的等分了。

往下看



如上图,根据你的需要,生成需要适配的尺寸的文件,手机会根据屏幕相关参数自动寻找合适的尺寸文件的。需要执行生成适配文件夹时,找到screenMatchPX.bat文件所在的硬盘位置,双击执行该文件即可,即可在项目的res目录下生成对应的values-aaaxbbb文件夹和里面的文件数据。

screenMatchPX.jar里面的源码,文末我会提供的,jar文件的打包也没什么神秘的,去eclipse试试就知道了。

screenMatchPX.bat内容:

[html]  view plain   copy
  1. java -jar %~dp0\screenMatchPX.jar 720 1280  
  2. pause  

也可以写成

[html]  view plain   copy
  1. java -jar 路径\screenMatchPX.jar 720 1280  
  2. pause  

如果不了解批处理知识的,干脆别折腾了,直接用。但后面跟的参数要注意,看源码:

[html]  view plain   copy
  1. public static void main(String[] args) {  
  2.         System.out.println("开始运行...");  
  3.         //基准宽高  
  4.         int baseW = 720;  
  5.         int baseH = 1280;  
  6.         String addition = "";  
  7.         try {  
  8.             if (args.length == 1) {  
  9.                 addition = args[0];  
  10.             } else if (args.length == 2) {  
  11.                 baseW = Integer.parseInt(args[0]);  
  12.                 baseH = Integer.parseInt(args[1]);  
  13.             } else if (args.length >= 3) {  
  14.                 baseW = Integer.parseInt(args[0]);  
  15.                 baseH = Integer.parseInt(args[1]);  
  16.                 addition = args[2];  
  17.             } else {  
  18.                 System.out.println("没有发现输入参数...");  
  • 1
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值