您的位置:首页 > 移动开发 > Android开发

android下屏幕适配

2015-06-22 11:31 381 查看
公司开发流程:

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

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

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*480(480*320加载)1dp=1.5px

Xdpi--X 有图 1280*720(5英寸) 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.权重适配:剩余空间的分配规则。linerlayout下width=0dp



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

适配总结:

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

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

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

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

权重适配:线性布局
内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签: