一、关于布局适配

  1、不要使用绝对布局

  2、尽量使用match_parent 而不是fill_parent 。

  3、能够使用权重的地方尽量使用权重(android:layout_weight)

  4、如果是纯色背景,尽量使用android的shape 自定义。

  5、如果需要在特定分辨率下适配,可以在res目录上新建layout-HxW.xml的文件夹。比如要适配1080*1800的屏幕(魅族MX3采用此分辨率)则新建layout-1800x1080.xml的文件夹,然后在下面定义布局。Android系统会优先查找分辨率相同的布局,如果不存在则换使用默认的layout下的布局。

  

  二、关于图片制作

  1、关于设计:

  设计图先定下一个要设计的尺寸,而且尽量采用在目前最流行的屏幕尺寸(比如目前占屏幕比重比较多的是480系列,也即是480*800或者400*854,下面的图标制作也在次基础上进行比例的换算)上设计。

  先了解一下屏幕的级别:

  屏幕级别:

  注意屏幕级别是按照密度分级,和像素没有关系。如果非要让密度和像素扯上关系,则需要一个参照系,android使用mdpi级别作为标准参照屏幕,也就是说在320*480分辨率的手机上一个密度可以容纳一个像素。然后其他密度级别则在此基础上进行对比。如果理想情况下,480*800的屏幕一个密度可以容纳1.5个像素。

  物理大小:

  单位是英寸而不是像素,也就说一个英寸在任何分辨率下显示的大小都是一样的,但是像素在密度不同的手机里面显示的实际的大小是不一样的(这就是为什么android手机需要适配的原因)。

  然后就是重点。

  假设1像素在160密度下显示1英寸,则1像素在240密度基础上显示大约0.67英寸,在320密度下显示0.5英寸。于是就出现一种情况,在电脑上的一个像素,在不同的手机上看实际的大小不一样。那么怎么让“设计效果”在不同的手机上看起来显示的区域一样呢?

  还是假设一个像素在160密度下的显示在一个密度内,也假设就是一英寸。那么需要几个像素才能在240密度级别下显示在一英寸范围内呢?答案是1.5个像素(根据上图的比率换算)。

  了解了这个关系,接下来就是图标的制作。

  2、关于切图。

  关于切图有几个建议:

  第一,长宽最好是3的倍数(根据android的推荐logo图标的大小是48(mdpi),72(hdpi),96(xhdpi)得出的最小公约数)。

  第二,长宽最好是偶数。因为奇数在进行等比压缩的时候可能有问题。

  第三,根据上面两条,如果长宽是6的倍数最理想。

  第四,如果可以拉伸而不改变设计意图的情况下,比如纯色背景,则使用android的9path工具制作成.9的图片。

  3、关于图标的适配。

  然后接下来的一切就和设计稿没什么关系。在切好图的基础上,根据屏幕密度、像素和实际大小的比例关系。假如设计司在480*800的分辨率下做好了设计图,并且切好图,如果你需要适配720*1280屏幕,该怎么做?根据比例,他们的关系是2:3,于是你需要按照1.5倍比例制作图标,比如你在480*800的设计稿上切下来一个20*20像素的图,那么你就需要制作一个等比放大成30*30像素的图标,这样同一个图标在480*800的屏幕和720*1280的屏幕上显示的实际大小才一样。同理,如果你需要适配xxhdpi则需要在20*20的基础上制作一个等比放大成40*40像素的图标。

  4、关于图标的目录,480*800切下来的图我们放在drawable-hdpi目录下,按照2:3放大的图标放在drawable-xhdpi目录下,按照2倍放大的图标放在drawable-xxhdpi目录下。

  android会根据手机的密度优先查找对应的目录的资源,

  比如408*800分辨率下的手机如果密度是160,则自动加载drawable-hdpi这个目录下的图标,

  如果720*1280密度是240的手机自动加载drawable-xhdpi这个目录下的图标。如果没有这个文件夹,则查找和240最接近的对应密度文件夹。

  三、其它

  接下来要说的估计会让你失望,根据上面的步骤也不能完全解决适配的问题,只能是大概适配,而就算根据上面的步骤大概适配了,实际在手机上的效果也有出入。

  比如魅族MX3的分辨率是1080*1800,标准情况下密度是480,但是他的密度大约是524,和480接近,也就是会查找drawable-xxhdpi这个资源下的文件。也就是说你在480*800分辨率下切图然后按两倍放大的图标在这台手机上显示的效果还是比实际的小。

  而另一个要说的问题是540*960或者640*960,他们的密度很可能是或者接近240也可能是320。于是在480*800的设计稿上切下来的图并且进行的适配制作,在这些手机上显示的实际大小也可能或大或小。

转载自:http://zhidao.baidu.com/link?url=DHGTuz9_gOT3BDLJXvnrZb57sVaoBXcEdMMPfJgHiq0UXSIjHYtDog96vw6CvneHusq30df5V_AITh14L0M0L_mOmhmh078pEBLDEc-eiAy

转载于:https://www.cnblogs.com/tmlee/p/4989160.html

android多屏幕适配注意几点相关推荐

  1. Android的屏幕适配

    Android的屏幕适配一直以来都在折磨着我们这些开发者,本篇文章以Google的官方文档为基础,全面而深入的讲解了Android屏幕适配的原因.重要概念.解决方案及最佳实践,我相信如果你能认真的学习 ...

  2. Android开发屏幕适配全攻略

    Android的屏幕适配一直以来都在折磨着我们这些开发者,本篇文章以Google的官方文档为基础,全面而深入的讲解了Android屏幕适配的原因.重要概念.解决方案及最佳实践,我相信如果你能认真的学习 ...

  3. android相机横屏竖屏,GitHub - qixuefeng/CameraAdapt: Android相机屏幕适配

    CameraAdaptDemo Android相机屏幕适配 该项目主要是为了做相机下的屏幕适配 具体思路可以参见我的这篇文章 Android 相机屏幕适配 测试: 机型:华为荣耀8 (厂商:honor ...

  4. android – 多屏幕适配相关

    android – 多屏幕适配相关 作者: 曲天日期: 2011/10/27 1.基本概念 屏幕大小(screen size) – 屏幕的实际大小,用屏幕对角线长度来衡量(比如3.4寸,3.8寸).a ...

  5. Android开发——Android手机屏幕适配方案总结

    0. 前言 Android的屏幕适配,即使得某一元素在Android不同尺寸.不同分辨率的手机上具备相同的显示效果,这个问题一直以来都是我们Android开发者不得不面对的问题.本文参考了很多前人的博 ...

  6. Android TV 屏幕适配

    Android TV 屏幕适配 1 1.dpi ,dip(dp), density 几个比较难描述的概念,摘这个blog的: http://www.cnblogs.com/wader2011/arch ...

  7. Android AutoSize屏幕适配中图标及字体放大的问题解决

    现象: 项目接入Android AutoSize屏幕适配框架,项目本身主界面是横屏操作的界面.测试中用户反馈在vivo x27的手机或者其他机型也会出现(没测试出来)横屏后所有的图标及字体都放大. 原 ...

  8. Android多屏幕适配-手机

    1.常用单位及其关系 px:像素 inch:英寸 pt:1/72 英寸 dpi:一英寸长的直线上的像素点的数量,即像素密度.不同的设备,dpi值不同,显示效果不同,dpi的值跟设备硬件有关.标准值是1 ...

  9. android 多屏幕适配 : 第一部分

    1.在xml布局文件中,控件的宽度和高度用  dp ;   字体大小用 sp 2.根据屏幕的宽高来动态的适配 , 获取屏幕的宽高的两种方法: 第一种方法: /*** 屏幕的宽度* 屏幕的高度* @re ...

最新文章

  1. 【MediaPipe】(1) AI视觉,手部关键点实时跟踪,附python完整代码
  2. requirejs模块化html,requirejs模块化-入门
  3. Debian/Ubuntu 报错解决:Command 'ifconfig' not found, but can be installed with
  4. 《预训练周刊》第25期:HyperCLOVA:数十亿级韩语生成式预训练变换器、GPT-3在生物医学领域不是好的小样本学习器...
  5. php 发出get与post请求
  6. 死在“风口上的猪”人工智能初创企业倒闭的原因分析
  7. LB 负载均衡的层次结构
  8. leetcode29. 两数相除(位运算)
  9. nginx 配置文件的匹配规则
  10. 告别30元!喜茶承诺今年绝不涨价:不再推29元以上产品
  11. java close wait过多_HttpClient当HTTP连接的时候出现大量CLOSE_WAIT连接
  12. 如何编写可移植的c/c++代码
  13. h5调用手机相机和录音机_html5 调用手机摄像头以及录音的方法
  14. 诊断实验评估指标-灵敏度(sensitivity)特异度(specificity)准确度(accuracy)
  15. 中国农业大学2020计算机院线,2020年中国农业大学考研分数线公布
  16. React中的SVG陷阱
  17. 大学生毕业后想成为产品经理?那你得先从以下几个方面入手!
  18. 笔记本电脑没声音的解决方法教程
  19. maven私服下载jar包失败的问题记载
  20. 面试汇总:这是一份全面详细的Android面试指南

热门文章

  1. python 是什么类型的语言-为什么说 Python 是强类型语言?
  2. lua学习笔记之编译、运行及错误
  3. LeetCode Sum Root to Leaf Numbers (dfs)
  4. 又拍云上传文件后,如何访问?
  5. You can Solve a Geometry Problem too(线段相交问题)
  6. 题目1132:与7无关的数
  7. java设计模式-建造者模式
  8. Python之黏包的解决
  9. android开发系列之数据存储
  10. Grails下 Membership和全文搜索实战录