Android——屏幕适配

什么是屏幕适配?
Android中屏幕适配就是通过对尺寸单位、图片、文字、布局这四种类型的资源进行合理的设计和规划,在布局时合理利用各种类型的资源,让布局拥有适应能力,能在各种设备下保持良好的展现效果。

Ø 屏幕尺寸(screen size):实际的物理尺寸,屏幕的对角线测量。为了方便,Android把所有的屏幕尺寸分为了4个广义的大小:小、正常、大、更大。

Ø 屏幕密度(screen density):屏幕占据的物理区域所含像素的个数,通常被称为dpi(dots per inch)即每英寸的像素点数。

Ø 分辨率(resolution):屏幕上物理像素的点数。例如,有一个240px*400px的屏幕,可以理解为在这个屏幕上横着有400条线,每条线上有240个像素点。

Ø 像素(px):屏幕上的点。

Ø dip(dp):Density-independent pixel—>与密度无关的像素

尺寸适配怎么做

dip转成像素 : dp*密度比 = 像素===> 每个手机的密度比不一样
屏幕密度:开根(屏幕宽的平方+屏幕高的平方)/屏幕的尺寸

    屏幕尺寸指屏幕的对角线的长度,mdpi、hdpi、xdpi、xxdpi、代表不同的密度设备。
   1.分别创建mdpi、hdpi、xdpi、xxdpi的模拟器
   2.观察尺寸、分辨率、dpi分别是多少。
   3.在res下新建valus-960*540、valus-1184*720文件夹,分别创建名为dimens.xml的文件
   4.为每个dimens.xml创建一个标签,name为app_width,值分别为100dp和800dp。
   5.在acyivity_main.xml中创建一个Button。
   6.分别观察Button的变化。

在 Android 工程的 res 目录下有 values 目录,这个是默认的目录,同时为了适配不同尺寸手机我们可以创建一个 values-   1280x720 的文件夹,同时将 dimens.xml 文件拷贝到该目录下。 

在 dimens.xml 中定义一个尺寸,如下图所示

在 values-1280x720 目录中的 dimens.xml 中定义同样的尺寸名称,但是使用不同的尺寸,如下图所示。

当我们在布局文件中使用长或者宽度单位时,比如下图所示,应该使用@dimen/width 来灵活的定义宽度。
在 values-1280x720 中,中间的是大写字母 X 的小写形式 x,而不是加减乘除的乘号。如果我们在values-1280x720 中放置了 dimens 常量,一定记得也将该常量的对应值在 values 目录下的 dimens.xml 中放一份,因为该文件是默认配置, 当用户的手机不是 1280*720 的情况下系统应用使用的是默认 values 目录中的 dimens.xml。

适配方式之 layout
跟 values 一样,在 Android 工程目录中 layout 目录也支持类似 values 目录一样的适配,在 layout 中我们可以针对不同手机的分辨率制定不同的布局,如下图所示:

图片适配怎么做

根据不同密度的手机,可以分别设计不同尺寸的图片放入对应的drawable的文件夹中,Android系统会根据当前运行的设备密度,加载对应文件夹中的图片。
  1.在布局文件中创建一个ImageView,src属于性指向animal.png。
  2.分别在hdpi、mdp、xdp的设备上运行,观察加载哪个文件夹中的图片。
  3.在进行开发的时候,我们需要把合适大小的图片放在合适的文件夹里面

文字适配怎么做
1.当手机语言为英文时,App中的文字显示英文:在res下新建values-en文件夹,并在此创建string.xml。字符串内容为英文格式。
2..当手机语言为英文时,App中的文字显示中文:在res下新建values文件夹,并在此创建string.xml。字符串内容为中文格式。
3.在2个string.xml中分别定义key为app_name,value分别为WeChat和为微信的字符串,调整手机语言,观察字符串是否切换。
4.每个文件夹中string.xml文件的命名一致。

什么是9.png图片
.9.PNG是安卓开发里面的一种特殊的图片,这种格式的图片通过ADT自带的编辑工具生成,使用九宫格切分的方法,使图片支持在android 环境下的自适应展示。
这种格式的图片在android 环境下具有自适应调节大小的能力。

你可能感兴趣的:(Android——屏幕适配)