您的位置:首页 > 移动开发 > Android开发

Android 屏幕的适配方法

2017-01-01 20:59 176 查看

相关概念介绍:

屏幕尺寸:指屏幕的对角线的长度,单位是英寸,1英寸 = 2.54厘米。

屏幕分辨率:屏幕分辨率是指在横纵向上的像素点数,单位是px,1px = 1个像素点。一般以纵向像素*横向像素。

屏幕像素密度:指每英寸上的像素点数,单位是dpi,即“dot per inch”的缩写。屏幕像素密度与屏幕尺寸和屏幕分辨率有关,在单一变化条件下,屏幕尺寸越小、分辨率越高,像素密度越大。

dp、dip、dpi、sp、px

px

我们应该是比较熟悉的,前面的分辨率就是用的像素为单位,大多数情况下,比如UI设计、Android原生API都会以px作为统一的计量单位,像是获取屏幕宽高等。

dp = dip dip是Density independent

pixel的缩写,也就是独立的像素密度的意思,与密度无关,在Android中,规定以160dpi为基准,1dp=1px,如果密度是320dpi,则1dip=2px,以此类推。

dpi 屏幕像素密度,dp与px的转换以此为参考。

sp 如果设置字体的大小,需要用sp,sp除了与密度无关,还与scale无关,使用sp,系统会根据屏幕密度的变化自动进行转换。

mdpi、hdpi、xdpi、xxdpi

mdpi、hdpi、xdpi、xxdpi用来修饰Android中的drawable文件夹及values文件夹,用来区分不同像素密度下的图片和dimen值。

Google官方指定按照下列标准进行区分:

名称像素密度范围
mdpi120dpi~160dpi
hdpi160dpi~240dpi
xdpi240dpi~320dpi
xxdpi320dpi~480dpi
xxxdpi480dpi~640dpi
解决方案:

多使用wrap_content,和match_parent

weight是线性布局的一个独特的属性,我们可以使用这个属性来按照比例对界面进行分配,完成一些特殊的需求。

复杂的情况下使用RelativeLayout

使用限定符,使程序在不同的尺寸下显示不同的内容。res/layout/main.xml,单面板(默认)布局: res/layout-large/main.xml,双面板布局:

使用最小宽度限定符,最小宽度限定符可让您通过指定某个最小宽度(以 dp 为单位)来定位屏幕。例如,标准 7 英寸平板电脑的最小宽度为 600 dp,因此如果您要在此类屏幕上的用户界面中使用双面板(但在较小的屏幕上只显示列表),您可以使用上文中所述的单面板和双面板这两种布局,但您应使用 sw600dp 指明双面板布局仅适用于最小宽度为 600 dp 的屏幕,而不是使用 large 尺寸限定符(适用于Android3.2以及更高版本)。

使用布局别名。

使用屏幕方向限定符号。

使用自动拉伸位图,.9图

使用非密度制约像素,使用dp和sp
内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签:  android dp