最近一直在看的一本书是《Android 应用程序开发权威指南》(第四版),十分推荐。书中讲到了一些用户界面设计的规范,对于初学者我认为十分有必要,在这里码给大家,希望对我们都有用。

  在我们设计用户界面的时候,我们总是很多时候通过提供自定义应用资源和代码的方法来支持特定设备配置,但有一点特别需要注意的,那就是我们必须保证我们的设计方案有足够的灵活性来应对各种变化,让他们变得简单,而不是过度的挤压他们,一下是我的一些建议:

  1. 设计正常尺寸屏幕和中等分辨率的app。随着时间的推移,设备有着向更大尺寸,更大分辨率的发展趋势。
  2. 使用Fragment来保持你的屏幕尺寸独立于你的应用的Activity类,并提供灵活的工作流程,使用Android支持库来为旧的平台版本提供更新的支持库。
  3. 对于View或者是Layout的width和height属性使用match_parent和wrap_content(也就是放弃使用fill_parent),这样可以为不同屏幕尺寸和方向变化控制大小,而不是使用固定的像素尺寸。
  4. 对于尺寸,使用灵活的单位,例如dp和sp,而不是使用固定的单位,例如px、mm和in。
  5. 避免使用AbsoluteLayout布局和其他像素固定的设置和属性。
  6. 使用灵活的布局控件,如RelativeLayout和LinearLayout、TabLayout、FrameLayout来设计屏幕,从而在纵向和横向模式下不同屏幕尺寸和分辨率不都能够做到较好的显示。尝试着用“分块工作”原则来组织屏幕内容。
  7. 将屏幕内容包装在可扩展的容器空间内,如ScrollView和ListView。通常情况下我们应当在一个方向上缩放或者伸展屏幕(垂直或者水平),而不是两者。
  8. 不要为屏幕元素、大小和尺寸提供确切的位置数值,相反,使用相对位置,权重和重力方向。在前期花费时间保证正确性可以在将来节约时间。
  9. 提供合理的高质量应用的图形,并始终保持原始的(较大的)尺寸,以保证将来可以为不用的分辨率使用不用版本的图形。图形质量和文件大小之间总是有所取舍的。找到一个合适的点,能保证在不同屏幕特性下合理的缩放图形而不会大大占用应用或者需要长时间来加载显示。更加好的话推荐使用Nine-Patch图形,它允许图形根据显示区域的大小来改变尺寸

   希望以上的一些开发规范能够帮助到大家。

BOB

【文章内容来自《Android 应用程序开发权威指南》(第四版)】如何设计兼容的用户界面的一些建议(有删改)的更多相关文章

  1. hadoop权威指南(第四版)要点翻译(4)——Chapter 3. The HDFS(1-4)

    Filesystems that manage the storage across a network of machines are called distributed filesystems. ...

  2. hadoop权威指南(第四版)要点翻译(5)——Chapter 3. The HDFS(5)

    5) The Java Interface a) Reading Data from a Hadoop URL. 使用hadoop URL来读取数据 b) Although we focus main ...

  3. 关于怎么快速学好Android应用程序开发及其其他编程语言(大牛和高手勿喷,此篇文章也适合刚入门小师弟和小师妹)

    无论你是从.NET转过来的也好 还是从PHP转过来的等等等,能看到这篇文章的人一般都是想快速转行到Android应用程序开发,希望我的这篇文章能勉励到各位的同时,也能勉励我自己. 1.编程语言基本都会 ...

  4. Android开发权威指南(第2版)新书发布

    <Android 开发权威指南(第二版)>是畅销书<Android开发权威指南>的升级版,内容更新超过80%,是一本全面介绍Android应用开发的专著,拥有45 章精彩内容供 ...

  5. Android应用程序开发之图片操作(一)——Bitmap,surfaceview,imageview,Canvas

    Android应用程序开发之图片操作(一)——Bitmap,surfaceview,imageview,Canvas   1,Bitmap对象的获取 首先说一下Bitmap,Bitmap是Androi ...

  6. Kotlin 编程语言成为其 Android 应用程序开发人员的首选语言

    今年 5 月,谷歌在 I/O 大会上宣布,Kotlin 编程语言成为其 Android 应用程序开发人员的首选语言. Kotlin 是一种面向现代多平台应用程序的编程语言,成为谷歌开发 Android ...

  7. Android应用程序开发之图片操作(二)——工程图片资源的加载及OOM的处理

    (一)工程图片资源的加载方法 在Android应用程序开发之图片操作(一)中,详细说明了如何操作各种资源图片,只是有的没有附上示例代码,在此,我将针对项目工程中的图片资源的显示加载进行说明.官方说明, ...

  8. Visual C++2010开发权威指南 中文高清PDF - VC.NET

    第一部分  Visual C++ 2010开发与新特性第1章  Visual C++ 2010开发环境简介 11.1  Visual C++ 2010简介 11.2  Visual C++ 2010下 ...

  9. Android编程权威指南第三版 第32章

    版权声明:本文为博主原创文章,遵循CC 4.0 BY-SA版权协议,转载请附上原文出处链接和本声明. 本文链接:https://blog.csdn.net/qq_35564145/article/de ...

随机推荐

  1. 后端码农谈前端(HTML篇)第二课:常见元素

    一.根元素 <doctype> 定义文档类型. <html> 定义 HTML 文档. 二.元数据元素 <head> 定义关于文档的信息. <meta> ...

  2. Android学习笔记之DocumentBuilder的使用....

    PS:当你的才华还撑不起你的野心时,那你需要静下心来学习..... 学习内容: 1.从服务器上获取XML文档... 2.解析XML文档中的内容...   XML文件想必大家都非常的熟悉,可扩展的标记语 ...

  3. 基于.NET C#的 sqlite 数据库 ORM 【Easyliter】

    因为工作原因经常用到SQLITE数据库,但又找不到好用的ORM所以自个整理了一个简单好用的轻量极ORM框架:Easyliter 功能介绍: 1.支持SQL语句操作 2.支持 List<T> ...

  4. ThroughRain第二次冲刺总结

    团队名:ThroughRain 项目确定:<餐厅到店点餐系统> 项目背景:本次项目是专门为餐厅开发的一套订餐系统.大家有没有发现在节假日去餐厅吃饭会超级麻烦,人很多, 热门的餐厅基本没有座 ...

  5. Entity FrameWork 延迟加载的本质(一)

    1.集合的标准查询运算符方法,是来自于System.Linq.Enumerable里给IEnumerable接口添加的扩展方法 2.EF上下文里的DBSet<T>里的标准查询运算符方法,来 ...

  6. AEAI EM费用管理系统V1.0.2版本开源发布

    本次开源发布是AEAI EM费用管理系统 V1.0.2版,该版本是此产品的首个版本,产品现已开源并上传至开源社区http://www.oschina.net/p/aeai-em. 产品说明: AEAI ...

  7. 一个让echarts中国地图包含省市轮廓的技巧

    背景知识及应用简介 本文主要介绍一个使用ECharts地图组件的取巧方法,该技巧源于实际需求中遇到的问题,一般没有该需求的话这个技巧也是用不到的.有前端基础和以及对ECharts有了解的人基本可以读懂 ...

  8. MySQL预处理语句

    预制语句的SQL语法基于三个SQL语句: PREPARE stmt_name FROM preparable_stmt; EXECUTE stmt_name [USING @var_name [, @ ...

  9. cURL和HTTPie

    http://lingxiankong.github.io/blog/2014/08/19/curl-httpie/ 前两天在网上看到一个号称比cURL更牛逼的命令行工具HTTPie,提供命令行交互方 ...

  10. 内核移植和文件系统制作(4):UBIFS根文件系统制作总结

    UBIFS文件系统简介: 无排序区块图像文件系统(UnsortedBlock Image File System, UBIFS)是用于固态硬盘存储设备上,并与LogFS相互竞争,作为JFFS2的后继文 ...