android设备支持多种屏幕的方法

转载 2013年12月03日 10:29:56
支持多种屏幕
android运行在不同尺寸和像素(密度)的设备上,android系统给应用程序提供了一个相同的环境去适应不同的UI显示界面。同时
系统提供API让应用程序去控制UI在不同尺寸和密度的屏幕上的显示效果,因为我们肯定不希望在手机和平板上显示一样的效果。


尽管android系统会自动缩放你的应用程序以适应不同分辨率,但是你也必须针对不同尺寸和密度的屏幕尽量优化,只有这样才能最大程度上获得
较好的用户体验。


概念


1.屏幕尺寸(Screen size):也就是我们常听到的iphone4 3.5寸  iphone4s 4寸 samsung s2 4.3寸  HTC butterfly 5寸等等,也就是屏幕的对角线长度,
然后你可以根据屏幕的长宽比计算长宽的尺寸(android 将这些分为四个等级,分别是small, normal, large, 和 extra large)
2.像素密度(dpi):每英寸屏幕含有的像素点个数 (android 也按照像素密度分了四个等级,分别是low, medium, high, 和 extra high)
3.方向(Orientation) :分水平和垂直,如果应用做的好的话,这两个方向都要考虑
4.分辨率(pix):也就是整个屏幕有多少个像素点组成,如果想应用程序支持不同的屏幕,那应用程序绝对不能直接根据分辨率作为单位来布局,而是应该
通过屏幕尺寸和像素密度中设定的等级来区分
5.像素无关密度(dp/dip): 一个android定义的虚拟的像素单位,你的应用程序应该用此单位来定义布局大小和位置
注意,一个dp和一个大小为160dpi的屏幕中的一个像素是相等的,所以dp和pix的换算应该是这样的real pix = dp * (dpi)/160 
当你写布局文件的时候可以根据这个公式大概估算一下
(如800*480 4寸屏,计算像素密度dpi = 根号[宽的平方 + 高的平方]/屏幕尺寸,
大概算一下是240dpi左右,也就是说你定义了一个button是100dp 宽,100dp高那么实际就是100*240/160 = 150 pix 了,也就是说你这个button占据了
屏幕的150/800 + 150/480 
)
(
如1920*1080 5寸屏,计算像素密度dpi = 根号[宽的平方 + 高的平方]/屏幕尺寸,
大概算一下是440dpi左右,也就是说你定义了一个button是100dp 宽,100dp高那么实际就是100*440/160 = 275 pix 了,也就是说你这个button占据了
屏幕的275/1920 + 275/1080 
)


当然这两款手机上的显示效果还是有些差距的,计算了一下前者的button宽占据了整个屏幕宽度的0.1875  而后者的button宽占据了整个屏幕的0.1432


可以看出来前者占据的位置要大一些,这样看起来在不同分辨率和大小的手机上效果就不太一样了
其原因在于后者的分辨率比前者大很多,但是尺寸仅仅大了一寸,这也跟厂家的定位有关系吧,尺寸小其实是根本没必要弄太大的分辨率的,因为根本看
不出效果来。


因此我们有必要对不同尺寸的定义不同的布局文件!!!
android 对不同尺寸不同像素密度等级划分
实际尺寸           2           4                   7                10
              <-------------------------------------------------->
尺寸等级           small  normal    large          xlarge


实际像素密度    100                              200                    300
<------------------------------------------------------------------------>
像素密度等级     ldpi(120)     mdpi(160)  hdpi(240)           xhdpi(340)


比如上面的4寸和5寸应该定义两个layout
layout      定义button的长宽为100dp 
layout-large   定义button的长宽大概为131dp 


131*440/160 = 360 
360/1920 = 0.1875  这样就和在寸屏幕中所占的比例相同了

相关文章推荐

应用程序支持多种屏幕尺寸方法(一)

前记:Android现在拥有数百种不同屏幕尺寸的设备,小到手机,大到电视。因此,设计你的程序适合所有屏幕尺寸显得很重要,以便于尽可能多的用户使用。但是适应不同设备类型是不可能的,每个屏幕给用户的交互都...
  • zj_133
  • zj_133
  • 2012-02-22 00:05
  • 5632

Android多种方法获取唯一设备id

一个获取唯一设备id工具类,可直接拿去用,建议使用getPesudoUniqueID()方法,不需申请任何权限; public class AppUtils {     private Con...

Android 支持多种屏幕第一篇

1. 理解密度无关像素(dp/dip)的概念 2. 了解通用的屏幕尺寸和密度组 3. 理解密度独立性的概念 概述Android 系统为我们提供了 API,可用于控制应用适用于特定屏幕尺寸和...

Android如何支持多种屏幕

原文链接:http://developer.android.com/guide/practices/screens_support.html 支持多屏 Android涉及各...

Android 支持多种屏幕第二篇

在为不同屏幕尺寸提供不同的布局时,注意 Android 3.2 之前和之后的不同限定符的使用 理解 Android 支持多种屏幕的主要两个方法。为不同屏幕尺寸提供不同的布局,为不同屏幕密度提供不同...

Android如何支持多种屏幕

支持多屏 Android涉及各种各样的支持不同屏幕尺寸和密度的设备。对于应用程序,Android系统通过设备和句柄提供了统一的开发环境,大部分工作是校正每一个应用程序的用户界面到它显示的...

android 布局如何支持多种不同屏幕尺寸

android运行在不同尺寸和像素(密度)的设备上,android系统给应用程序提供了一个相同的环境去适应不同的UI显示界面。同时系统提供API让应用程序去控制UI在不同尺寸和密度的屏幕上的显示效果,...

Android UI --支持多种屏幕

支持多种屏幕 android运行在不同尺寸和像素(密度)的设备上,android系统给应用程序提供了一个相同的环境去适应不同的UI显示界面。同时 系统提供API让应用程序去控制UI在不同尺寸和密度的屏...

如何让android 支持多种屏幕尺寸

英文链接地址:http://developer.android.com/guide/practices/screens_support.html 多屏支持概述 本节提供了Andro...
内容举报
返回顶部
收藏助手
不良信息举报
您举报文章:深度学习:神经网络中的前向传播和反向传播算法推导
举报原因:
原因补充:

(最多只允许输入30个字)