1、基本概念 屏幕大小(screen size)?– 屏幕的实际大小,用屏幕对角线长度来衡量(比如3.4寸,3.8寸)。android把屏幕分为以下4种:small,normal,large,extra large。 屏幕密度(Screen Density) -??一块实际的屏幕区域有多少个像素,一般用dpi衡量(每英寸有多少个点)。相比起medium、high屏幕密度的设备,在一块确定大小的屏幕区域l密度为low的屏幕拥有的像素更少。android把屏幕密度分为4种:low,medium,high,extra high。 如何判断是ldpi,mdpi,hdpi? 方向(orientation) -??屏幕方向分为landscape(横屏)和portrait(竖屏)。 分辨率(Resolution)?-??屏幕上的总实际像素数。对屏幕进行适配时,一般不关注它的分辨率,只关注它的屏幕大小和密度。 与密度无关的像素(Density-independent pixel,dp或dip)?-??为了保证你的UI适合不同的屏幕密度,建议你采用dp来定义程序UI。 sp(scale-independent pixel) 如何分辨一个屏幕是ldpi、mdpi、hdpi的方法,见下图 计算屏幕密度 2、怎样适配多种屏幕 a.在manifest里定义你的程序支持的屏幕类型,相应代码如下: b.对不同大小的屏幕提供不同的layout。 ??????比如,如果需要对大小为large的屏幕提供支持,需要在res目录下新建一个文件夹layout-large/并提供layout。当然,也可以在res目录下建立layout-port和layout-land两个目录,里面分别放置竖屏和横屏两种布局文件,以适应对横屏竖屏自动切换。 c.对不同密度的屏幕提供不同的图片。 不同密度的屏幕对应的图片比例 3、多屏幕适配的4条黄金原则 ???????具体来说,设置view的属性android:layout_width和android:layout_height的值时,wrap_content,fill_parent或dp比pix更好。相应地,为了使文字大小更好的适应屏幕应该使用sp来定义文字大小。 b.在程序的代码中不要出现具体的像素值。 为了使代码简单,android内部使用pix为单位表示控件的尺寸,但这是基于当前屏幕基础上的。为了适应多种屏幕,android建议开发者不要使用具体的像素来表示控件尺寸。 c.不要使用AbsoluteLayout(android1.5已废弃)?。相应地,应使用RelativeLayout。 d.对不同的屏幕提供合适大小的图片。见上面第2部分。 4、需要注意的地方 5、怎样测试你的程序是否支持多屏幕适配 6、参考文档:http://developer.android.com/guide/practices/screens_support.html ? 转自:http://www.androidlearner.net/android-multi-screen-about.html
怎么判断?
它的计算方法为:px = dp * (dpi / 160)
<supports-screens android:resizeable=["true"| "false"]
android:smallScreens=["true" | "false"]?? //是否支持小屏
android:normalScreens=["true" | "false"]? //是否支持中屏
android:largeScreens=["true" | "false"]?? //是否支持大屏
android:xlargeScreens=["true" | "false"] ?//是否支持超大屏
android:anyDensity=["true" | "false"]??? //是否支持多种不同密度的屏幕
android:requiresSmallestWidthDp=”integer”
android:compatibleWidthLimitDp=”integer”
android:largestWidthLimitDp=”integer”/>
应尽量使用点9格式的图片,如需对密度为low的屏幕提供合适的图片,需新建文件夹drawable-ldpi/,并放入合适大小的图片。相应的,medium对应drawable-mdpi /,high对应drawable-hdpi/,extra high对应drawable-xhdpi/。
图片大小的确定:low:medium:high:extra high比例为3:4:6:8。举例来说,对于中等密度(medium)的屏幕你的图片像素大小为48×48,那么低密度(low)屏幕的图片大小应为36×36,高(high)的为72×72,extra high为96×96。
a.在layout文件中设置控件尺寸时应采用wrap_content,fill_parent和dp。
以上设置适用于android3.2以下的版本。(本人目前开发是在android2.2上,这部分以后再补充)
一般使用AVD Manager创建多个不同大小的模拟器,如下图
详细解决方案
[转]android – 多荧屏适配相关
热度:86 发布时间:2016-05-01 20:07:06.0
相关解决方案
- android 读取byte[]中的元素解决方案
- android 标题栏兑现方式
- android 中Activity向BroadcastReceiver发送数据,该怎么解决
- Android 4.0 为什么模拟器老是提示小弟我谷歌拼音输入法已停止
- android:getSharedPreferences() 这是哪个类的方法解决思路
- android 怎么判断一个程序是否联网
- android 大量数据按周分组,该如何解决
- android RadioButton如何设置默认选中
- ksoap2-android-这个包,连接webService怎么设置超时
- android 怎么重新设置锚点
- android UI界面设计解决方案
- android 图片对象获取的有关问题
- android 怎么调用淘宝支付宝接口
- Android 沿袭InputMethodService自定义输入法
- android 关于服务连接的疑义
- android 两个activity如何通信
- android 怎么实现对view的放大和缩小
- android 教程解决方法
- android ID,该如何处理
- 准备复习2-3个月,看java+android,请问有经验者,怎么看效果最好》
- android UI线程与AsyncTask的有关问题
- android(java)中的java.net能不能和c#的system.net.sockets进行tcp通信,该如何解决
- android ListView 中的onItemClick Intent 没法跳转
- android(java) 中文乱码的有关问题
- c#c++,android,ios(iphone),php,java视屏课程 散分
- android Post文件到ASP.NET的有关问题,能收到参数收不到文件
- RIM 替 Android 开发者提供免费的 PlayBook!2月13日前
- android 动态设立控件高度
- Android test project 编译方法
- android -相机使用教程(1)解决方法