1. 布局适配
布局适配,其实就是布局别名问题:
平板 layout-sw600dp (600dp以上):平板情况下会自动加载这个文件下的布局,如果有需要适配的界面,就可以放在这里面;
竖屏 layout-land:当布局切换时,竖屏情况下会自动加载这个文件下的布局,如果有需要适配的界面,就可以放在这里面;
1>: 对于手机的横竖屏、平板而言:
如果是竖屏,点击列表会跳转详情,详情会是另外一个Activity的界面;
如果是平板,列表在左边,然后点击列表对应的item,跳转的详情页面会在屏幕右边部分,左右两边都是Fragment来进行切换的;
手机横屏的情况与平板一样的;
竖屏、横屏和平板的适配问题.png
2>: 对于版本而言,比如5.0以下,这里以4.4举例说明和5.0以上:
比如以MD为例,对于MD中的 FloatingActionBar,即就是右下角出现的按钮,现象就是:
4.4手机和5.0已上手机放FloatActionBar现象.png如果是运行在4.4手机上边会自动的在右下角显示,并且有14dp的间距;
如果是运行在5.0手机上边,那么这个 FloatingActionBar就会紧贴着屏幕右下角;
针对于这种情况,可以这样去适配:
给values设置版本别名,可以重新写一个 values - v21,在里边复制一个dimens.xml文件,然后在里边写一个padding = 14dp,而res 下边的values本来就有dimens,这样就可以在xml文件中给 文字大小 的textSize直接引用 @dimens/ 下的某一个大小即可。
比如像这样的,就是针对于一些其他的版本去适配的:
图片.png
3>: 细节问题
xml布局文件中尽量使用wrap_content、match_parent、weight等,能不写死就不要写死,在xml文件中尽量不要写:30dp、40dp、个人详情、注册、登录等固定的文本内容和固定大小。
4>: 屏幕尺寸、屏幕分辨率、屏幕像素密度
a:屏幕尺寸: 指的是屏幕对角线长度,即就是5.0、5.1、5.5屏幕的尺寸(不是特别重要);
b:屏幕分辨率:横、纵上边的像素点,单位是px,一般是纵向像素 * 横向像素,比如1920 * 1080、1080*720等等;
c:屏幕像素密度:指的是每英寸上面的像素点,单位是dpi,这个与屏幕尺寸、屏幕分辨率有关;
比如 谷歌的Nexus 5手机:
屏幕的尺寸是 4.95英尺;
屏幕的分辨率是1920*1080;
屏幕像素密度 DPI = 445;
5>: dp、dip、dpi、sp、px之间的关系:
a:dp、dip指的是屏幕像素密度,以160dpi为基准,1dip(1dp) = 1px;
b:谷歌推荐sp,字体大小最好都在12sp以上,比如12sp、14sp、18sp、22sp,最好不要使用基数,比如13sp、15sp等等,因为可能会在部分机型上边造成经度丢失,如果设计师非要让你的字体大小设置13sp,这个时候你可以给她说,字体大小最好还是设置成偶数,否则可能会在部分机型上边造成经度丢失。
6>: mdpi、hdpi、xhdpi、xxhdpi如何计算区分
ldpi: 120dp 240 * 320;
mdpi:160dp 320px * 480px 1dp = 1px
hdpi: 240dp 480 * 800 1dp = 1.5px
xhdpi:320dp 720*1280 1dp = 2px
在代码中使用的一般情况都是 px,一般情况都需要转换,在代码中一般这样使用:
dip2px(80):表示80转换成对应的px
2. 图片适配
在项目开发时,有的会切1套图、有的会切3套图,一般:
mipmap下边放的图标如下,比如这样的:
图片.png
drawable一般放其他;
一般情况下:放一套图就行,但是部分的要区分开,放一套图的一般都放用户量最多的目录下,我们绝大部分都放在xxhdpi下边的,比如QQ的可能都放在xhdpi下边的,可能用户群体更多的是老年人吧;
图片.png特殊情况下:尺寸较大的一些图,一般需要放三套,比如启动页、首页、个人中心的背景图都需要三张:
启动页就不用说,就是3张启动图,个人中心背景如下图所示:
还有必须做bitmap的优化,或者使用第三方的图片库去加载,如果所有都用3套图的话,那么apk可能会很大,不太好。
3. 其他情况
以下情况必须采用代码去适配:
如果需要显示的图片是正方形、按比例的轮播条、平板、竖屏显示;
网友评论