性能优化 - 布局适配与图片适配

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下边的,可能用户群体更多的是老年人吧;

特殊情况下:尺寸较大的一些图,一般需要放三套,比如启动页、首页、个人中心的背景图都需要三张:
启动页就不用说,就是3张启动图,个人中心背景如下图所示:

图片.png

还有必须做bitmap的优化,或者使用第三方的图片库去加载,如果所有都用3套图的话,那么apk可能会很大,不太好。

3. 其他情况

以下情况必须采用代码去适配:
如果需要显示的图片是正方形、按比例的轮播条、平板、竖屏显示;

©著作权归作者所有,转载或内容合作请联系作者
  • 序言:七十年代末,一起剥皮案震惊了整个滨河市,随后出现的几起案子,更是在滨河造成了极大的恐慌,老刑警刘岩,带你破解...
    沈念sama阅读 216,591评论 6 501
  • 序言:滨河连续发生了三起死亡事件,死亡现场离奇诡异,居然都是意外死亡,警方通过查阅死者的电脑和手机,发现死者居然都...
    沈念sama阅读 92,448评论 3 392
  • 文/潘晓璐 我一进店门,熙熙楼的掌柜王于贵愁眉苦脸地迎上来,“玉大人,你说我怎么就摊上这事。” “怎么了?”我有些...
    开封第一讲书人阅读 162,823评论 0 353
  • 文/不坏的土叔 我叫张陵,是天一观的道长。 经常有香客问我,道长,这世上最难降的妖魔是什么? 我笑而不...
    开封第一讲书人阅读 58,204评论 1 292
  • 正文 为了忘掉前任,我火速办了婚礼,结果婚礼上,老公的妹妹穿的比我还像新娘。我一直安慰自己,他们只是感情好,可当我...
    茶点故事阅读 67,228评论 6 388
  • 文/花漫 我一把揭开白布。 她就那样静静地躺着,像睡着了一般。 火红的嫁衣衬着肌肤如雪。 梳的纹丝不乱的头发上,一...
    开封第一讲书人阅读 51,190评论 1 299
  • 那天,我揣着相机与录音,去河边找鬼。 笑死,一个胖子当着我的面吹牛,可吹牛的内容都是我干的。 我是一名探鬼主播,决...
    沈念sama阅读 40,078评论 3 418
  • 文/苍兰香墨 我猛地睁开眼,长吁一口气:“原来是场噩梦啊……” “哼!你这毒妇竟也来了?” 一声冷哼从身侧响起,我...
    开封第一讲书人阅读 38,923评论 0 274
  • 序言:老挝万荣一对情侣失踪,失踪者是张志新(化名)和其女友刘颖,没想到半个月后,有当地人在树林里发现了一具尸体,经...
    沈念sama阅读 45,334评论 1 310
  • 正文 独居荒郊野岭守林人离奇死亡,尸身上长有42处带血的脓包…… 初始之章·张勋 以下内容为张勋视角 年9月15日...
    茶点故事阅读 37,550评论 2 333
  • 正文 我和宋清朗相恋三年,在试婚纱的时候发现自己被绿了。 大学时的朋友给我发了我未婚夫和他白月光在一起吃饭的照片。...
    茶点故事阅读 39,727评论 1 348
  • 序言:一个原本活蹦乱跳的男人离奇死亡,死状恐怖,灵堂内的尸体忽然破棺而出,到底是诈尸还是另有隐情,我是刑警宁泽,带...
    沈念sama阅读 35,428评论 5 343
  • 正文 年R本政府宣布,位于F岛的核电站,受9级特大地震影响,放射性物质发生泄漏。R本人自食恶果不足惜,却给世界环境...
    茶点故事阅读 41,022评论 3 326
  • 文/蒙蒙 一、第九天 我趴在偏房一处隐蔽的房顶上张望。 院中可真热闹,春花似锦、人声如沸。这庄子的主人今日做“春日...
    开封第一讲书人阅读 31,672评论 0 22
  • 文/苍兰香墨 我抬头看了看天上的太阳。三九已至,却和暖如春,着一层夹袄步出监牢的瞬间,已是汗流浃背。 一阵脚步声响...
    开封第一讲书人阅读 32,826评论 1 269
  • 我被黑心中介骗来泰国打工, 没想到刚下飞机就差点儿被人妖公主榨干…… 1. 我叫王不留,地道东北人。 一个月前我还...
    沈念sama阅读 47,734评论 2 368
  • 正文 我出身青楼,却偏偏与公主长得像,于是被迫代替她去往敌国和亲。 传闻我的和亲对象是个残疾皇子,可洞房花烛夜当晚...
    茶点故事阅读 44,619评论 2 354

推荐阅读更多精彩内容