1      基本设置

1.1     AndroidManifest.xml设置

在<manifest>中添加子元素<supports-screens android:largeScreens="true"android:normalScreens="true" android:anyDensity="true"android:smallScreens="true"></supports-screens>

android:anyDensity="true"时,应用程序安装在不同密度的终端上时,程序会分别加载xxhdpi、xhdpi、hdpi、mdpi、ldpi文件夹中的资源。 相反,如果设为false,即使在文件夹下拥有相同资源,应用不会自动地去相应文件夹下寻找资源:

1)       如果drawable-hdpi、drawable-mdpi、drawable-ldpi三个文件夹中有同一张图片资源的不同密度表示,那么系统会去加载drawable_mdpi文件夹中的资源;

2)       如果drawable-hpdi中有高密度图片,其它两个文件夹中没有对应图片资源,那么系统会去加载drawable-hdpi中的资源,其他同理;

3)       如果drawable-hdpi,drawable-mdpi中有图片资源,drawable-ldpi中没有,系统会加载drawable-mdpi中的资源,其他同理,使用最接近的密度级别。

1.2     横屏竖屏目录区分

1)       drawable

a)        drawable-hdpi该图片即适用于横屏,也适用于竖屏;

b)       drawable-land-hdpi,当屏幕为横屏,且为高密度时,加载此文件夹的资源;

c)        drawable-port-hdpi,当屏幕为竖屏,且为高密度时,加载此文件夹中的资源。其他同理。

2)       layout

在res目录下建立layout-port和layout-land两个目录,里面分别放置竖屏和横屏两种布局文件,以适应对横屏竖屏自动切换。

2      多屏幕适配的4条黄金原则

1)       在layout文件中设置控件尺寸时应采用fill_parent、wrap_content、match_parent和dp;

具体来说,设置view的属性android:layout_width和android:layout_height的值时,wrap_content,match_parent或dp比px更好,文字大小应该使用sp来定义。

2)       在程序的代码中不要出现具体的像素值,在dimens.xml中定义;

为了使代码简单,android内部使用pix为单位表示控件的尺寸,但这是基于当前屏幕基础上的。为了适应多种屏幕,android建议开发者不要使用具体的像素来表示控件尺寸。

3)       不使用AbsoluteLayout(android1.5已废弃) ,可以使用RelativeLayout替代;

4)       对不同的屏幕提供合适大小的图片。

不同大小屏幕用不同大小的图片,low:medium:high:extra-high图片大小的比例为3:4:6:8;举例来说,对于中等密度(medium)的屏幕你的图片像素大小为48×48,那么低密度(low)屏幕的图片大小应为36×36,高(high)的为72×72,extra-high为96×96。

3      使用9-patch PNG图片

使用图片资源时,如果出现拉伸,因为图片处理的原因,会变形,导致界面走形。9-patch PNG图片也是一种标准的PGN图片,在原生PNG图片四周空出一个像素间隔,用来标识PNG图片中哪些部分可以拉伸、哪些不可以拉伸、背景上的边框位置等。

“上、左”定义可拉伸区域

“右、下”定义显示区域,如果用到完整填充的背景图,建议不要通过android:padding来设置边距,而是通过9-patch方式来定义。

Android SDK中提供了编辑9-Patch图片的工具,在tools目录下draw9patch.bat,能够立刻看到编辑后的拉伸效果,也可以直接用其他图片编辑工具编辑,但是看不到效果。

4      测试验证

一般使用AVD Manager创建多个不同大小的模拟器,如下图:

Android屏幕尺寸适配注意事项相关推荐

  1. Android屏幕尺寸适配常见方案smallestWidth

    前言 介于目前的Android设备存在有不同的屏幕尺寸,屏幕分辨率,像素密度,Android应用在开发的过程必须要考虑到屏幕尺寸适配的问题,以保证在不同尺寸的Android设备上都能够正常运行. 基本 ...

  2. 关于android屏幕尺寸适配的整理以及思考

    一直以来android屏幕尺寸相关的东西我都很薄弱,什么dpi, ppi, 英寸我都比较疑惑,本文主要是理清概念,理解头条的屏幕适配原理,以为目前我工作是如何做UI适配的. 一些基础概念 屏幕尺寸 屏 ...

  3. Android屏幕亮度适配

    Android屏幕亮度适配 前言 最近由于接手了视频项目中的亮度调整功能,抽空总结了下Android亮度调节的方式,以及在如今系统定制化的情况下会遇到的坑. 亮度调节模式 查看官网说明,可以看到,目前 ...

  4. Android 屏幕尺寸、屏幕分辨率(px)、屏幕像素密度(dpi)、密度无关像素(dp/dip)、屏幕适配

    1. dp , dpi , px 关系 (假设已经熟悉了基本概念,也可以参考最后的链接)  2. 运行时dp 如何转换成 px  3.  使用dp 和 px 设计结果比较 参考: Android屏幕适 ...

  5. flutter 屏幕尺寸适配 字体大小适配,android面试常用算法

    width: ScreenUtil().setWidth(375), height: ScreenUtil().setHeight(200), ), 适配字体: ScreenUtil().setSp( ...

  6. android屏幕分辨率适配总结

    不同分辨率下容易出现的问题 欢迎加入QQ交流3群:317874559        由于目前android设备的分辨率种类很多,在开发的时候不注意进行屏幕适配的话会出现很多问题.比如高分辨率和低分辨率 ...

  7. android屏幕分辨率适配

    分辨率 高度 宽度 宽高比(宽/高) 1920x1080 1920 1080 0.5625 2094x1080 2094 1080 0.5157593123 2220x1080 2220 1080 0 ...

  8. android屏幕大小字体大小,文字大小和不同的Android屏幕尺寸

    对于运行Android 3.0的第一代平板电脑,声明平板电脑布局的正确方法是将它们放在具有xlarge配置限定符的目录中(例如,res / layout-xlarge /).为了适应其他类型的平板电脑 ...

  9. Android屏幕大小适配问题解决

     一.一些基本概念 1.长度(真实长度):英寸.inch 2.分辨率:density 每英寸像素数  dpi(密度) 3.像素:px 4.dip的公式:px /dip=dpi/160  所以 dip ...

最新文章

  1. 抢红包要当心!钱盾反诈平台专家揭秘3类假红包骗局
  2. java struts2 安全漏洞 devMode 简介
  3. WCF消息拦截,利用消息拦截做身份验证服务
  4. Open Source Bing Maps API for ASP.NET MVC
  5. 数据分析究竟该如何学?大神总结的6种数据分析思维到底如何?
  6. rocksdb写放大_Rocksdb的优劣及应用场景分析
  7. shell中的比较(if运算)
  8. python字符串格式化方法 format函数的使用
  9. C++笔记-VS2015加载Live2D(OpenGL)
  10. 2021年电工(初级)考试及电工(初级)模拟考试系统
  11. 2009年03月《安全天下事之希望与忧伤》
  12. 读书笔记010:《伤寒论》- 足少阴肾经
  13. oracle数据库lpad,Oracle的lpad与rpad函数的应用
  14. 爬虫之巨潮资讯网关键词信息获取
  15. 《Linux命令行与shell脚本编程大全(第3版)》读书笔记
  16. nsh 自定义启动脚本
  17. 8个亿!河南首富再次无偿捐款西湖大学,西湖大学河南籍校董高达11位
  18. PHP套件的实验结果分析,PHP环境搭建套件评比测 | Wopus
  19. Springboot项目中使用Kafka
  20. python repair修复功能_通用高效的数据修复方法:Row level repair

热门文章

  1. bat 启动 不弹出对话框_CAD中转换出的PDF文件模糊要怎么办
  2. nc 发布元数据_海南接线端子数控NC尼龙加工现货_苏州九兴电子
  3. html语言怎么那么难用,css语言难学吗?
  4. 帝国cms php点击删除,帝国CMS删除内容非本站链接的方法(非插件)
  5. 登录注册的小项目对比.Net Core与 .Net Framework的一些区别
  6. 性能测试报告模板_性能测试新手误区
  7. wps 模拟分析 规划求解_FFU气流仿真模拟,到底有多简单?
  8. 代码审计XSS 0day
  9. LeetCode练习及自己理解记录(1)
  10. 入门训练 A+B问题 c语言