教育行业A股IPO第一股(股票代码 003032)

全国咨询/投诉热线:400-618-4000

Android培训之屏幕适配(1)

更新时间:2016年10月31日17时28分 来源:传智播客Android培训学院 浏览次数:

 屏幕适配:
1.为什么要进行屏幕适配?
  因为android手机碎片化和版本的不一致,所以android应用开发就需要做屏幕适配。
 
2.对于那些屏幕分辨率进行适配?
  需要做适配的手机的分辨率分别:1280*720  1920*1080  800*480  854*480  960*540   1184*720
 
3.什么是屏幕尺寸,屏幕分辨率,屏幕像素密度
  屏幕尺寸:指屏幕对角线的长度,单位是英寸  1英寸=2.54厘米。
  屏幕分辨率:指的是手机横纵方向上的像素点数。分辨率越高,显示效果越好。单位是px   1px==1像素点
  屏幕像素密度:指每英寸上的屏幕像素点数,单位是dpi   是dot  per  inch  的缩写。
                和屏幕尺寸和屏幕分辨率相关,每英寸的像素点越多,密度就越大,显示效果就越好。
 
   计算屏幕像素密度的方式:
   以Smartisan T2为例:
   屏幕尺寸:4.95英寸     分辨率:1920*1080
   屏幕像素密度=1920*1920+1080*1080开平方/4.95 = 445dpi
 
4.什么是dp,dip,dpi,sp,px?它们之间有什么关系?
  px :构成图像的最小单位,
  dp和dip:概念是完全相同的,密度无关像素 ,以160dpi为基准,1dip = 1px。
    如果按照dp作为单位,在不同的分辨率下,dp和px换算的标准是不一样的。
在高分辨率的手机上,使用dp作为单位,就能够保证实现相同的效果。
  sp : 根据文字大小进行放缩,一般使用sp作为衡量文字的单位。
    google官方建议文字大小不要小于12sp,文字大小的数量不要用奇数,要使用偶数,也不要小数,
使用奇数和小数会在放缩时造成精度的缺失。
 
 
5.什么是mdpi,ldpi,hdpi,xhdpi,xxhdpi?如何计算和区分的?
  对于不同手机的像素密度进行区分的,在不同的像素密度上,同一张图片的显示效果其实是不一样的,
  但是我们要不同的屏幕密度上显示出相同的效果,那么就要对res文件夹当中的子文件夹进行区分,
  可以通过在文件夹后面添加限定符,就可以实现在不同分辨率下的相同效果。
 
  名称                   取值范围
  mdpi                120dpi~160dpi      48*48
  hdpi                160dpi~240dpi      72*72
  xhdpi               240dpi~320dpi      96*96
  xxhdpi              320dpi~480dpi      144*144
  xxxhdpi             480dpi~640dpi
 
6.解决屏幕适配的问题
    1.怎么能让应用支持各种屏幕?
    a)使用wrap_content,match_parent,weight属性值去定义控件的宽和高。
weight  权重
计算出的宽度=原来的宽度+剩余空间所占百分比的宽度
以button为例:
 假设屏幕宽度为L,然后横向放置两个button,要求比例是1:2.
 button1----》width--match_parent: L+(L-2L)/3 = L-1/3L = 2/3L;
0dp   :0+(l-0)/3 = 1/3L;
 button2----> width--match_parent:L+(L-2L)*2/3=L-2/3L=1/3L;
0dp   :0+(l-0)*2/3 =2/3L;
 
 
b)使用相对布局等,禁用绝对布局。
  绝对布局适配性很差,以左上点为左边原点,要具体给定放置控件的值才能绘制绘制。
  想要为不同的屏幕尺寸设定不同的高度,就要使用相对布局或者线性布局。
 
c)使用限定符
   布局限定符:
layout           普通的单面版的屏幕
layout-large     屏幕尺寸大于7英寸,同时系统版本在3.2之下
layout-sw600dp   屏幕像素密度在600dpi之上,系统版本在3.2之上的。
使用限定符,使平板和手机实现适配。
 
d)使用布局别名
    可以在layout文件夹中定义不同的布局,然后在values的文件夹当中定义layout.xml文件,
然后引用layout文件夹当中的布局,并且给他们统一的名字,然后针对不同的屏幕尺寸就具备
不同的布局引用了。
 
e)使用屏幕方向限定符
    布局设置限定符
layout-land    横屏
layout(layout-port) 竖屏
layout-sw600dp-land
layout-sw600dp-port
        
f) 使用自动拉伸的位图
    自动拉伸的位图----》点9图片
左边和上边是负责拉伸区域,可以指定需要拉伸的部分。
右边和下边是负责间隔区域,可以指定放置内容的位置。
本文版权归传智播客Android培训学院所有,欢迎转载,转载请注明作者出处。谢谢!
作者:传智播客Android培训学院
首发:http://www.itcast.cn/Android
0 分享到:
和我们在线交谈!