Android的屏幕适配

在屏幕适配之前需要先了解的知识点

一,我们所见的屏幕情况

           1,hdpi :480*800

            2,ldpi :240*320

          3,xhdpi:1280*720

          4,mdpi:320*480

 二,屏幕的基本概念

分辨率:长和宽总的像素点的总和

屏幕的大小: 英寸,手机的对角线

屏幕的分辨率和屏幕适配没有任何关系

三,文字的适配

1,在正常情况下可以使用sp

2,假如你是包裹内容的话不能用sp,要用dp

四,dpi:密度(屏幕的密度和适配息息相关)

  ldpi:120dpi,像素密度与dp转换关系为:1dp = 0.75px
     mdpi:160dpi    ,像素密度与dp转换关系为:1dp = 1px
     hdpi:240dpi,像素密度与dp转换关系为:1dp = 1.5px
     xhdpi:320dpi,像素密度与dp转换关系为:1dp = 2px
     xxhdpi:480dpi,像素密度与dp转换关系为:1dp = 3px

所以呢四者之比:3:4:6:8

我们知道的系统有一张默认的ic_launcher图片,他是怎样计算的呢?

也是根据我们上面的四者之比所计算出来的

结果分别为:

36*36

48*48

72*72

96*96

五, 那么我们都知道平常我们见到的手机的尺寸都是英尺计算的,那都怎么得到对应的像素呢?

勾股定理就是了,然后结合上面说的没英寸的像素点不难得到(这里说明点:为什么用勾股定理呢,因为比如4.0的手机,

4.0指的是对角线的宽度呀)

Android屏幕适配的五种方式

1,图片适配

图片一般主要要480*800就可以,

注意的点:

如果是作为背景的时候图片才会失真严重,把作为背景的图片单独切成1280*480,另一方面作为引导页面的图片也需要单 独切出来.因为当你运行的时候如果找不到匹配的图片,系统会自动向上找.比如480*320的没有的话,会自动的向480*640 找.找到最高的找不到,会回头向低的找.

这也就是为什么要写480*800了,一方面现在的屏幕这个用的最多,另一方面也是折中的思想.

2,通过多套layout来适配

注意的点:

如果是进行多套layout布局适配,必须把大的写在前面,layout-1280x720必须写在前面,还有就是中间是x不是*.

3,通过dimens进行适配

dimens本身是尺寸的意思,values-1280x720道理和上面一样需要写在最前面,

为什么dp不行呀?

因为你这个值是密度,屏幕的分辨率不同,总是会相差一点,但是会比像素好一点

4,通过代码进行适配

DisplayMetricsdisplayMetrics = new DisplayMetrics();//得到屏幕的矩阵显示

getWindowManager().getDefaultDisplay().getMetrics(diaplayMetrics);//

Constant.diaplayHeight*0.1f+0.5f

这里面加的0.5f,是为了四舍五入使用,比如你得到的值是:12.9999如果不加上0.5f的话那么他永远都只能是12,这样损失 的精度比较大

通过得到的屏幕的宽高动态的适配

5,通过线性布局的权重进行适配

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值