Android: 常见分辨率(mdpi、hdpi 、xhdpi、xxhdpi )及屏幕适配注意事项

1 Android手机目前常见的分辨率

1.1 手机常见分辨率:

4:3
VGA     640*480 (Video Graphics Array)
QVGA  320*240 (Quarter VGA)
HVGA  480*320 (Half-size VGA)
SVGA  800*600 (Super VGA)

5:3
WVGA  800*480 (Wide VGA)

16:9
FWVGA 854*480 (Full Wide VGA)
HD        1920*1080 高清
QHD     960*540
720p    1280*720  标清
1080p  1920*1080 高清

1.2 分辨率对应DPI
"HVGA-------->mdpi"

"WVGA-------->hdpi "
"FWVGA-------->hdpi "
"QHD-------->hdpi "
"720P-------->xhdpi"
"1080P-------->xxhdpi "

2 屏幕适配的注意事项

2.1 基本设置

2.1.1 AndroidManifest.xml设置

在中Menifest中添加子元素

android:anyDensity="true"时,应用程序安装在不同密度的终端上时,程序会分别加载xxhdpi、xhdpi、hdpi、mdpi、ldpi文件夹中的资源。

相反,如果设为false,即使在文件夹下拥有相同资源,应用不会自动地去相应文件夹下寻找资源:

1) 如果drawable-hdpi、drawable-mdpi、drawable-ldpi三个文件夹中有同一张图片资源的不同密度表示,那么系统会去加载drawable_mdpi文件夹中的资源;

2) 如果drawable-hpdi中有高密度图片,其它两个文件夹中没有对应图片资源,那么系统会去加载drawable-hdpi中的资源,其他同理;

3) 如果drawable-hdpi,drawable-mdpi中有图片资源,drawable-ldpi中没有,系统会加载drawable-mdpi中的资源,其他同理,使用最接近的密度级别。

2.1.2 横屏竖屏目录区分

1) drawable

a) drawable-hdpi该图片即适用于横屏,也适用于竖屏;

b) drawable-land-hdpi,当屏幕为横屏,且为高密度时,加载此文件夹的资源;

c) drawable-port-hdpi,当屏幕为竖屏,且为高密度时,加载此文件夹中的资源。其他同理。

2) layout

在res目录下建立layout-port和layout-land两个目录,里面分别放置竖屏和横屏两种布局文件,以适应对横屏竖屏自动切换。

2.2 多屏幕适配的4条黄金原则

1) 在layout文件中设置控件尺寸时应采用fill_parent、wrap_content、match_parent和dp;

具体来说,设置view的属性android:layout_width和android:layout_height的值时,wrap_content,match_parent或dp比px更好,文字大小应该使用sp来定义

2) 在程序的代码中不要出现具体的像素值,在dimens.xml中定义;

为了使代码简单,android内部使用pix为单位表示控件的尺寸,但这是基于当前屏幕基础上的。为了适应多种屏幕,android建议开发者不要使用具体的像素来表示控件尺寸。

3) 不使用AbsoluteLayout(android1.5已废弃) ,可以使用RelativeLayout替代;

4) 对不同的屏幕提供合适大小的图片。

不同大小屏幕用不同大小的图片,low:medium:high:extra-high图片大小的比例为3:4:6:8;举例来说,对于中等密度(medium)的屏幕你的图片像素大小为48×48,那么低密度(low)屏幕的图片大小应为36×36,高(high)的为72×72,extra-high为96×96。

2.3 使用9-patch PNG图片

使用图片资源时,如果出现拉伸,因为图片处理的原因,会变形,导致界面走形。9-patch PNG图片也是一种标准的PGN图片,在原生PNG图片四周空出一个像素间隔,用来标识PNG图片中哪些部分可以拉伸、哪些不可以拉伸、背景上的边框位置等。

“上、左”定义可拉伸区域

“右、下”定义显示区域,如果用到完整填充的背景图,建议不要通过android:padding来设置边距,而是通过9-patch方式来定义。

Android SDK中提供了编辑9-Patch图片的工具,在tools目录下draw9patch.bat,能够立刻看到编辑后的拉伸效果,也可以直接用其他图片编辑工具编辑,但是看不到效果。

2.4 不同的layout

Android手机屏幕大小不一,有480x320, 640x360, 800x480……

怎样才能让Application自动适应不同的屏幕呢?

其实很简单,只需要在res目录下创建不同的layout文件夹,比如:layout-640x360、layout-800x480……所有的layout文件在编译之后都会写入R.java里,而系统会根据屏幕的大小自己选择合适的layout进行使用。

2.5 测试验证

一般使用AVD Manager创建多个不同大小的模拟器,如果条件具备,也可以直接用真机测试,这个比较靠谱。

时间: 2024-10-23 11:12:12

Android: 常见分辨率(mdpi、hdpi 、xhdpi、xxhdpi )及屏幕适配注意事项的相关文章

一分钟了解Android横竖屏 mdpi hdpi xhdpi xxhdpi xxxhdpi

DPI:每英寸像素数 简单的屏幕分辨率计算方法: DisplayMetrics metrics = this.getResources().getDisplayMetrics(); float density = metrics.density; int dpi = metrics.densityDpi; int heightPixels = metrics.heightPixels; int widthPixels = metrics.widthPixels; Log.e("---metric

android 常见分辨率(mdpi、hdpi 、xhdpi、xxhdpi )屏幕适配

1 Android手机目前常见的分辨率 1.1 手机常见分辨率: 4:3 VGA     640*480 (Video Graphics Array) QVGA  320*240 (Quarter VGA) HVGA  480*320 (Half-size VGA) SVGA  800*600 (Super VGA) 5:3 WVGA  800*480 (Wide VGA) 16:9 FWVGA 854*480 (Full Wide VGA) HD        1920*1080 High D

android 常见分辨率(mdpi、hdpi 、xhdpi、xxhdpi )及屏幕适配注意事项

1 Android手机目前常见的分辨率 1.1 手机常见分辨率: 分辨率对应DPI"HVGA    mdpi" 480*320 "WVGA   hdpi ""FWVGA hdpi ""QHD      hdpi ""720P     xhdpi""1080P   xxhdpi " 4:3VGA     640*480 (Video Graphics Array)QVGA  320*240

android 常见分辨率(mdpi、hdpi 、xhdpi、xxhdpi )及屏幕适配注意事

1.1 手机常见分辨率: 4:3VGA     640*480 (Video Graphics Array)QVGA  320*240 (Quarter VGA)HVGA  480*320 (Half-size VGA)SVGA  800*600 (Super VGA) 5:3WVGA  800*480 (Wide VGA) 16:9FWVGA 854*480 (Full Wide VGA)HD        1920*1080 High DefinitionQHD     960*540720

android 常见分辨率与DPI对照表

分辨率对应DPI ldpi  QVGA (240×320) mdpi  HVGA (320×480) hdpi  WVGA (480×800),FWVGA (480×854) xhdpi  720P(1280*720) xxhdpi 1080p(1920*1080 ) xxxhdpi 4K(3840×2160) 手机常见分辨率: 4:3 VGA    640*480 (Video Graphics Array) QVGA  320*240 (Quarter VGA) HVGA  480*320

一分钟了解Android屏幕 ldpi mdpi hdpi xhdpi

DPI:每英寸像素数 简单的屏幕分辨率计算方法: DisplayMetrics metrics = new DisplayMetrics(); Display display = this.getWindowManager().getDefaultDisplay(); display.getMetrics(metrics); Log.e("display", "高:"+display.getHeight()+"宽:"+display.getWid

像素、分辨率、屏幕大小(屏幕适配必看)

简介: 一直对android中常见单位理解不是很透彻,今天分享下.有什么不到位,欢迎指出 含义: 1.屏幕大小 :物理尺寸(手机对角线大小,例如4.7,5.5.5寸的手机) 2.密度(dpi):每英寸所展示的像素 3.像素(px):真实屏幕上所测量的大小 4.dp:屏幕宽高和px的一个比值,在大屏幕手机上对应的px多,小屏幕上对应的px少 图表: 很容易就能理解像素.分辨率.密度的关系 比值(各种屏幕密度的比值): ldpi:mdpi:hdpi:xhdpi:xxhdpi:xxxdpi = 0.7

Android TV开发总结(五)TV上屏幕适配总结

前言:前面几篇总结一些TV上的小Sample,开源到GitHub:https://github.com/hejunlin2013/TVSample, 点击链接,可以持续关注.今天总结下TV上屏幕适配.: 看下Agenda: 一.屏幕适配的一些背景知识 二.TV屏幕适配怎么适配?有哪些规则? 三.多屏幕适配,android读取res/drawable优先级是什么? 四.屏幕分辨率及density .densityDpi代码 一.屏幕适配的一些背景知识 介绍几个在Android屏幕适配上非常重要的名

[Android Pro] UI设计师不可不知的安卓屏幕知识

reference to : http://www.android100.org/html/201505/24/149342.html 不少设计师和工程师都被安卓设备纷繁的屏幕搞得晕头转向,我既做UI设计,也做一部分安卓界面布局,刚好对这块内容比较熟悉,也曾在公司内部做过相关的讲座,在此,我将此部分知识重新梳理出来分享给大家! 1.了解几个概念 (1)分辨率.分辨率就是手机屏幕的像素点数,一般描述成屏幕的“宽×高”,安卓手机屏幕常见的分辨率有480×800.720×1280.1080×1920等