android下屏幕适配

公司开发流程:

1.产品、需求文档(流程图)

2.美工设计(效果图)、程序员(后台工程师(数据库,xmljson,接口文档)、客户端(接受数据,解析,androidios))

3.测试(测试工程师)

4.运营(产品发布、运营)

 

1.流程图

2.效果图

3.接口文档

4.代码

 

适配

1.图片设计(800*480,如果800*480小图放在1280*720手机上,变形(看不出),如果大图(需要单独作图))

 

1.图片适配

Ldpi---low   有图      320*240     1dp=0.75px

Mdpi--middle 无图      480*320(无图)  1dp=1px

Hdpi--high   有图      800*480480*320加载)1dp=1.5px

Xdpi--X     有图      1280*7205英寸)  1dp=2px

Xxdpi-xx 有图      1920*1080  (5英寸)  1dp=3px

 

若对应的资源文件下没有图片,则优先加载分辨率更高的资源文件

 

5英寸=手机的斜边对应长度

斜边上像素的总个数=Math.sqrt(1280*1280+720*720)=1400

像素密度=1400/5=293dpi 

 

像素密度再与google文档比较 相近

 

因为293相对于xhdpi最近、则加载xhpi下面的图片

 

2.Dimens.xml  不同像素密度的手机,加载不同文件夹下的dimens.xml 

因为dp不能完全适配,所以需要dimens适配。  给特定的手机指定属性,还需要给默认手机加载values/dimens.xml

根据手机分辨率算出px,多套dimens适配

Values/dimens.xml

Values-1280x720/dimens.xml

 

 

注意:在不同分辨率没有写入对应的属性值文件则会报:

 

3.layout适配  不同像素,加载不同像素布局文件

多套布局文件

Layout-1280x720/acrivity_main.xml

 

4.Java代码

首先获取屏幕的宽高像素值,然后更具屏幕宽高像素的比例,分配给控件

4.1.获取屏幕宽高

DisplayMetics  dislpay = New DisplayMetics();

getWindowManage().getDefaultDisplay().getMetrics(dislpay);

dislpay.heightPixels

dislpay.widthPixels

取整操作(四舍五入):int halfHeight  = (int)(display.heightPixels/2+0.5);

   4.2.给控件设置宽高(先将宽高定义在付布局的规则上,再作用在字控件上)

Tv =(TextView)findviewById(R.id.tv);

LayoutParams = New Relative.LayoutParams(halfWidth,halfHeight);

注意 包括头,需要把头去掉。(1、在代码中。2、在manifest.xml中)

 

注意:当给子控件设置参数时 使用layouparams方法 父控件使用错误则报:

 

5.权重适配:剩余空间的分配规则。linerlayoutwidth=0dp

 

6.最近有新出来百分比适配 原理是包装了relativelayout布局

适配总结:

图片适配:不同像素密度的手机,加载不同的资源文件下的图片

Dimens.xml:不同像素密度的手机,加载不同的dimensXml

Layout适配:不同像素密度的手机,加载不同的布局文件

Java代码适配:获取屏幕的宽高像素值,更具屏幕宽高,分配控件

权重适配:线性布局 

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值