Android 适配问题

名称解释:

1、分辨率:Android 中分辨率分为两种 (1)相对分辨率 :屏幕的宽和高的像素数 ,比如 我们一般说的320*480 其实是 屏幕宽像素数是320 高的像素数480。

    (2)绝对分辨率 也就是dpi ,屏幕的每英寸的像素个数。比如dpi 160 是指该屏幕每英寸有160个像素点。模拟器上的dpi都是 160 所以 模拟器上的相对分辨率越大 屏幕越大。

2、px:pixel 像素,一块屏幕都是由光点组成。一个像素就是一个屏幕的光点。

3、dip:driver independent pixel ,与设备独立的像素,他是根据设备屏幕的密度 转换为像素点的。在Android开发中屏幕适配很有用。

4、density :密度 屏幕密度就是每英寸的像素点数,数值越高当然显示越细腻。对于屏幕来说,dpi越大,屏幕的精细度越高,屏幕看起来就越清楚。手机可以有相同的分辨率,但屏幕尺寸可以不相同。

5、屏幕大小:屏幕大小是手机对角线的物理尺寸,以英寸(inch)为单位。比如某某手机为“5寸大屏手机”,就是指对角线的尺寸为5英寸,5寸×2.54厘米/寸=12.7厘米。

5、Android手机常见分辨率

WVGA:800x480

FWVGA:854x480

QHD:960x540

720P:1280x720(标清,standard definition,SD)

1080P:1920x1080(高清,high definition,HD)

6、分辨率对应dpi(这种划分是真确的吗?)

dpi(dots per inch,每英寸点数)

hdpi对应WVGA、FWVGA、QHD。

xhdpi对应720P。

xxhdpi对应1080P

7、AndroidManifest.xml设置

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

android:anyDensity="false"时,即使在文件夹下拥有相同资源,应用不会自动地去相应文件夹下寻找资源。

8、横屏竖屏目录区分

1)drawable

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

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

(2)layout

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

9、多屏适配原则

(1)在layout文件中设置控件尺寸时应采用fill_parent、match_parent、wrap_content和dp。具体来说,设置view的属性android:layout_width和android:layout_height的值时,fill_parent、match_parent、wrap_content和dp比px更好,文字大小应该使用sp来定义。

(2)在程序的代码中不要出现具体的像素值,在dimens.xml中定义。为了适应多种屏幕,android建议开发者不要使用具体的像素来表示控件尺寸。

10、9-patch图片

在android中,不仅可以使用.png、.jpg、.gif的普通图片作为图片资源,而且可以将扩展名为.9.png的9-patch图片作为图片资源。android的SDK目录tools下的draw9patch工具可以生成一个可以伸缩的标准png图像,该图像的扩展名为.9.png。9-patch图片通常用作背景,与普通图片不同的是,使用9-patch图片作为屏幕或者按钮背景时,当屏幕尺寸或按钮大小改变时,图片可自动缩放,达到不失真效果。

9-patch PNG图片,在原生PNG图片四周空出一个像素间隔,用来标识PNG图片中哪些部分可以拉伸、哪些不可以拉伸、背景上的边框位置等。

11、不同layout

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

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




在Android项目中 drawable-xdpi 中 对应的dpi大小:

l ----》120dpi ; m----》160 ;h -----》240 ;xh-----》320 

系统会根据单前设备的屏幕分辨率 和 屏幕的尺寸 来选择drawable中的资源。 公式:分辨率 /尺寸 = 对应dpi。然后根据计算出的dpi 选择drawable 中的那个文件夹中的资源。 现在对于开发中有一个重要的问题,在6 中分辨率对于dpi 对应关系真确吗?720p的切图一定是放在xhdpi文件夹下吗? 显然不是这样的,这样根据目前市场上手机分辨率和尺寸来处理的,以前对应是这样,到现在 720p的切图 大多都放在 hdpi中。 而 1080p 的都放在 xhdpi中

目前主流手机的 是 720 * 1080


适配规则:能用拉伸图也就是9图的用9图,能用相对布局的用相对布局。能用代码算出 设置的长宽用代码计算。

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值