Android屏幕适配(二)多分辨率布局适配策略
来源:互联网 发布:淘宝天堂伞假货 编辑:程序博客网 时间:2024/05/01 21:16
Android布局的适配方法有很多种,不过每一种方法的思路无非就是让不同分辨率的手机去读各自的适配文件,主要总结下面两种方式:
1、每个分辨率下面一套layout,比如layout-480x800,layout-1280x720,1080x1080等。
这种方法的缺点就是产品需要改点需求的时候,每一个layout文件都需要去修改,增加了适配的工作量。
2、每个分辨率下面一套values文件夹,里面是不同的dimens.xml,定义不同的尺寸去适配。
如果是按分辨率去适配,往往我们需要新建的dimens.xml比较多。
在给手机屏幕适配的时候有下面几点需要注意的地方:
1、使用dpi 屏幕密度去适配。
2、公共的部分大小和字体的大小都应该统一去定义,比如标题栏、文章内容字体大小等等。
3、非主流的分辨率、厂商改变过density的手机,我们都可能要做单独的处理。
density和分辨率的关系表
屏幕级别
屏幕密度
比率(相对)
物理大小(英寸)
像素大小
通常的分辨率
ldpi
120
3
0.75
1
120
mdpi
160
4
1
1
160
320*480
hdpi
240
6
1.5
1
240
480*800
xhdpi
320
8
2
1
320
720*1280
xxhdpi
480
12
3
1
480
1080*1800
xxxhdpi
640
16
4
1
648
3840×2160
hdpi 比率是1,其他的按照这个比率可以计算出demins的值,当屏幕密度是160,1dp=1px,这下我们可以建自己的demins.xml来适配
valuse-ldpi,valuse-mdpi,valuse-hdpi,valuse-xhdpi,valuse-xxhdpi,valuse-xxxhdpi
每一个都按照上面表中的对照在dimens.xml定义尺寸,比如 mpdi <dimen name="title">10sp</dimen>,那么hdpi就应该是<dimen name="title">15sp</dimen>
dimens我们可以预先把所有的尺寸都定义上
这样基本上能适配市场上大部分的主流手机,那么遇到一些非主流的情况,比如上面讲的1280*720,inchit=6.0,density却是1.5,
如果你只是做了上面的dpi适配的话,这款手机的布局适配不是xhdpi,而是hdpi,也就是走了480*800分辨率的dpi。
那么该怎么去解决这个问题呢?
dpi+分辨率,新建values-hdpi-1280x720 ,这样系统就会去找到这个适配文件去适配。
valuse-xxxhdpi 4.3以后出现的4K屏幕的适配
values-sw720dp-lan width=720dp的平板适配
values-nodpi-1280×720 所有密度这个分辨率的适配
官方适配的几张图片,便于理解
http://developer.android.com/guide/practices/screens_support.html
small
Resources for small size screens.normal
Resources for normal size screens. (This is the baseline size.)large
Resources for large size screens.xlarge
Resources for extra-large size screens.Densityldpi
Resources for low-density (ldpi) screens (~120dpi).mdpi
Resources for medium-density (mdpi) screens (~160dpi). (This is the baseline density.)hdpi
Resources for high-density (hdpi) screens (~240dpi).xhdpi
Resources for extra-high-density (xhdpi) screens (~320dpi).xxhdpi
Resources for extra-extra-high-density (xxhdpi) screens (~480dpi).xxxhdpi
Resources for extra-extra-extra-high-density (xxxhdpi) uses (~640dpi). Use this for the launcher icon only, see note above.nodpi
Resources for all densities. These are density-independent resources. The system does not scale resources tagged with this qualifier, regardless of the current screen's density.tvdpi
Resources for screens somewhere between mdpi and hdpi; approximately 213dpi. This is not considered a "primary" density group. It is mostly intended for televisions and most apps shouldn't need it—providing mdpi and hdpi resources is sufficient for most apps and the system will scale them as appropriate. If you find it necessary to provide tvdpi resources, you should size them at a factor of 1.33*mdpi. For example, a 100px x 100px image for mdpi screens should be 133px x 133px for tvdpi.Orientationland
Resources for screens in the landscape orientation (wide aspect ratio).port
Resources for screens in the portrait orientation (tall aspect ratio).Aspect ratiolong
Resources for screens that have a significantly taller or wider aspect ratio (when in portrait or landscape orientation, respectively) than the baseline screen configuration.notlong
Resources for use screens that have an aspect ratio that is similar to the baseline screen configuration. 0 0
- Android屏幕适配(二)多分辨率布局适配策略
- android分辨率屏幕适配
- android屏幕的多分辨率适配
- Android屏幕、多分辨率适配
- android分辨率(屏幕适配)
- android分辨率(屏幕适配)
- Android多分辨率和多屏幕的布局适配详解
- Android多分辨率和多屏幕的布局适配详解
- 多分辨率屏幕适配
- Android屏幕适配策略
- Android屏幕适配(分辨率适配)
- Android分辨率和屏幕适配经验
- Android 适配不同分辨率屏幕
- Android常见分辨率的屏幕适配
- android 自适应 多屏幕支持 --Android多分辨率适配
- android 自适应 多屏幕支持 --Android多分辨率适配
- android 自适应 多屏幕支持 --Android多分辨率适配
- Android屏幕尺寸,分辨率,屏幕适配剖析
- 使用Genism进行词向量训练:实践版
- PS笔记
- MyBatis Oracle 自增序列
- SpringMVC 使用poi导出excel简单小例子
- C#之String学习一
- Android屏幕适配(二)多分辨率布局适配策略
- JAVA WEB进阶一
- Android 图文弹幕 不叠加 不丢失
- itextPdf不要随便把下载文件等建立在c盘根目录下。可以建立在桌面下
- java中的批处理
- sringMVC链接oracle和mysql的字符串
- eclipse插件安装
- iOS tableView动态创建分组及组内排序
- 浅谈垂直搜索引擎技术