android多分辨率适配其实是老生常谈的话了,今天再拿出来炒个冷饭
背景:现在手机分辨率从480*800,到720*1280,再到1080*1920,最近三星的note4出来了,
都飙到2560*1440了。
从前适配多分辨率的话,用.9.png的图,用dp可以解决很多问题。。。
但随着手机厂家的不断升级硬件,以前的屏幕密度,density等等也在不断飙升。
上述的俩个方法也不能解决所有问题了。。你会发现明明是用了dp单位,用了.9的图,
分辨率同样为的1080p的两个手机显示效果可能大相径庭。
原因呢,还是因为手机密度不一样了,如下图所示
在我们建立工程的时候,android自动给我们建了这几个文件夹,用于放置不同的图片供不同
分辨率的手机调用,
mdpi desity 160,密度比为160/160 = 1
hdpi density 240, 密度比为240/160 = 1.5
xhdpi density 320, 密度比为320/160 = 2
xxhdpi density 480, 密度比为480/160 = 3
正常我们xml文件里设置的dp=10,如果在720*1280,desity为240的分辨率机器上显示正常
同样的apk我们拿到720*1280,desity为320的机器上,就会发现显示结果是有出入的。
症结就在于不同的density,当为240的时候dp=10显示正常,为320的时候dp就需要转化一下了
说了这么多才到正题。。。。
我们需要在res目录下建立类似下图的文件夹,来对应不同的分辨率,以及density。
不要被这么多文件夹吓坏,其实里边只有一个文件,内容大家也可以看到,只是转换下dp而已
转换的公式其实也很简单
譬如hdpi(480*800)--->(1.5)的dp为10,如果要转换成xhdpi-720*1280---->(2)的话,
就是((1.5*720)/(2*480))*10 .
同理如果要转换成xxhdpi-1080*1920 --->(3)
就是((1.5*1080)/(3*480))*10 .
layout_width = "@dimen/dp_10"
这样适配的时候就不会出错了!
- 大小: 8.1 KB
- 大小: 20.2 KB
- 大小: 10.6 KB
- 大小: 29.9 KB
分享到:
相关推荐
Android多分辨率适配,统一以px为单位,按照屏幕大小进行缩放适配。
通过默认的dimens.xml生成不同分辨率的xml文件,以便快速适配不同分辨率的设备。文件为可执行的jar文件 使用命令 java -jar cdimes.jar 执行该文件
android多分辨率UI适配,该文档由前人文档总结,加上个人总结组成,里面包含了粗略适配,和精确适配的方案。
android多屏幕多分辨率适配,告诉你怎么创建正确的布局资源
这是一款可以自动生成各个屏幕分辨率.xml文件的工具,内含demo和注释,教你怎么应用,非常好用,欢迎star!
自己写了一个Java文件用于生成适配各种Android屏幕分辨率的dimen尺寸,以px为单位,在res文件夹下创建“values-分辨率,如:values-1280x720”的文件再将生成的文件放进去,原理很简单,易懂
Android应用源码之android多分辨率适配 ,判断平板还是手机,等比例缩小图片.rar
android 使用AutoLayout.jar在values下自动生成不同的dimens来适配不同分辨率
android多分辨率适配 ,判断平板还是手机,等比例缩小图片.rar
Android多分辨率多密度下UI适配方案.
android多分辨率适配 ,判断平板还是手机,等比例缩小图片
关于Android引导画面的多分辨率适配.docx
Android多分辨率多密度下UI适配方案
Android字体大小自适应不同分辨率的解决办法 今天有人问我,Android系统不同分辨率,不同大小的手机,字体大小怎么去适应呢?其实字体的适应和图片的适应是一个道理的。 一、原理如下: 假设需要适应320×240,480...
android分辨率自动适配源码和apk包
Android 屏幕适配方案,自动生成不同分辨率的值
Android 应用项目开发源码 参考和学习使用
Android 工程里面values文件夹有dimens.xml文件,为了适配不同的分辨率,例如values-sw400dp,values-sw600dp,values-sw720dp,如果自己去生成这几个文件夹,需要根据values里面的dimens.xml进行计算,然后修改,这个...
安卓Android源码——android多分辨率适配 ,判断平板还是手机,等比例缩小图片.rar
安卓Android源码——android多分辨率适配 ,判断平板还是手机,等比例缩小图片.zip