公司开发流程:
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代码适配:获取屏幕的宽高像素值,更具屏幕宽高,分配控件
权重适配:线性布局