第七章 屏幕适配
屏幕适配需要考虑三个方面:
l 屏幕尺寸:
ü small(小屏)
ü normal(中屏)
ü large(大屏)
ü xlarge(超大屏)
l 屏幕分辨率:像素密度,单位dpi,每英寸上有多少个像素
ü ldpi(低分辨率)
ü mdpi(中分辨率)
ü hdpi(高分辨率)
ü xhdpi(超高分辨率)
l 屏幕方向
ü land(横屏)
ü port(竖屏)
对于图片资源:(只有图片资源需要考虑分辨率,组件的尺寸大小只需要考虑屏幕的尺寸大小如1080*1800)
1,官方解决方法:在layout-ldpi、layout-mdpi、layout-hdpi、layout-xhdpi目录下分别放置同一图片的不同分辨率版本。
2,使用9patch图片,指定图片的哪些部分可以被伸缩
对于组件尺寸大小:高度和宽度(不用去考虑dpi分辨率)
1,尽量使用wrap_content和match_parent而不使用指定的具体值
2,需要指定具体大小的时候,使用dp为单位,密度无关的像素
3,使用layout_weight属性,将组件之间按比例大小进行显示
4,自定义尺寸:将屏幕进行80等分(横向80等分,竖向80等分),分别定义不同屏幕尺寸的不同dimen文件。例如:values-480x320目录下,定义dimens-height.xml(将480个像素进行80等分,得到80个尺寸大小)与dimens-width.xml(将320个像素进行80等分,得到80个尺寸大小)两个文件。
5,在Java代码中设置高度和宽度:首先获取当前手机屏幕的大小,然后根据这个大小设置组件的大小
6,官方做法:多布局。为不同屏幕尺寸设置多个layout目录,放置不同的布局文件,最笨的办法。
对于字体大小:
以sp为单位
HTML+CSS:
android的适配也可以通过采用HTML5 和CSS3 制作界面,然后在WebView 视图上进行显示,然后通过JavaScript 进行事件的交互是一种很不错的开发技巧。而且现在javascript 与android 可以完美交互,实在是不错的选择。