编者注:本文为Android的官方开发者博客发了一份幻灯片的翻译文档的第二部分,专门介绍了一些Android UI设计的小贴士,我们在介绍这个幻灯片的第一部分《多图详解 “Android UI”设计官方教程》之后很多朋友都在等待第二部分,我们第一时间为大家提供本文的翻译文档,希望大家喜欢。

想了解全部Android UI教程内容请点击51CTO独家专题:谷歌官方教程:Android UI设计技巧

Android UI 框架特性

你必须了解(使用)的 UI 框架特性。

使用相对布局管理界面元素。

译者注:相对布局和线性布局是Android里面常用的两种布局,线性布局比较简单,而相对布局可以做出比较复杂的布局管理,所以仅仅了解线性布局,很多时候是不够的。不过以作者之前Qt的经验来看,Android里面的布局管理功能都比较阳春也不太容易使用,不过这可能是跟移动平台的性能考量有关系。

合理使用资源修饰符

使用资源修饰符来修饰同一套资源的多个不同版本。

◆一个apk包里面会包含所有的资源文件。

◆系统在运行时会根据软硬件环境来自动选择相应修饰符版本的资源。

译者注:最常用的修饰符可能是locale修饰符(制作多语文本),dpi修饰符(为不同密度的屏幕制作不同尺寸的图标和皮肤),orientation修饰符(为横屏和竖屏提供不同的UI布局)。如果系统找不到对应的修饰符版本,它就会选择无修饰符的版本,这个版本通常也是所谓的默认选择。

9-patch drawables

使用 9-patch drawables – foo.9.png

◆9-patch drawables 的语法跟CSS3 border image 类似

◆根据边缘的像素宽度切割出不同的拉伸区域

◆最好同时提供 mdpi 和 hdpi 的版本

译者注:drawables 在 Android 里面跟 WPF 里面的 Drawing 类似,用于定义一个可绘制的对象,包括位图,刷子,填充颜色或者以上物件的组合等等。所谓 9-patch drawables,就是将一个 drawable 按照定义的 4 个边缘的宽度大小切割成9个区域,包括4个角落,4条边缘和一个中心区域,当把这个 drawable 绘制到一个任意矩形区域时,drawable 的各个区域有不同的拉伸控制(角落不拉伸,横边横向拉伸,竖边竖向拉伸,中心区域横竖向都拉伸)。通常使用 9-patch drawable 一般是为了绘制出比较漂亮的带圆角背景,这样可以避免圆角及边缘被任意拉伸导致变形。当然,如果你的程序里面绘制的图像和目标区域大小完全一样,就不需要那么麻烦,不过以 Android 的状况来说,为了适应多种设备,最好不要事先假设目标区域的像素大小。

使用状态列表和多层叠加来制作具备复杂效果的可绘制图像

使用 Selector (state list) drawables (状态列表)来提供不同状态(normal,disabled,focused,pressed…)下的绘制图像。

使用 Layer drawables (多层叠加)来制作具备复杂效果的可绘制图像。

译者注:所谓多层叠加,使用PS来制作图标和皮肤的同学可能都清楚,比如说一个按钮的PS模板通常会包括所谓的background层定义底色,mask层定义轮廓,shine层定义前景的高亮效果。而 Android 里面允许你直接在 XML 脚本里面使用 Layer drawables 的语法来定义上述的多层叠加效果,这样可能比在PS里面直接做好要更灵活一些,并且有的层可以是来自png位图,有的层可以是直接通过 XML 脚本生成(比如纯色,过渡色等等)。

【编辑推荐】

【责任编辑:立方 TEL:(010)68476606】

点赞 0

android ui框架详解,多图详解 “Android UI”设计官方教程(二)相关推荐

  1. android教程 - android ui 介绍,多图详解 “Android UI”设计官方教程

    我们曾经给大家一个<MeeGo移动终端设备开发UI设计基础教程>,同时很多朋友都在寻找Android UI开发的教程,我们从Android的官方开发者博客找了一份幻灯片,介绍了一些Andr ...

  2. android最新框架,XUpdate 一个轻量级、高可用性的Android版本更新框架

    XUpdate 一个轻量级.高可用性的Android版本更新框架.赶紧点击使用说明文档,体验一下吧! 特点 支持post和get两种版本检查方式,支持自定义网络请求. 支持设置只在wifi下进行版本更 ...

  3. android客户端框架,最新的一版,通用Android 客户端架构设计,只有你还没看过

    客户端架构设计 客户端设计 目的是整体设计客户端App,架构上打好铺垫. Android客户端架构设计 主要从以下几个方面进行设计:MVP设计风格.整体架构.日志系统.网络系统.本地存储.Test模块 ...

  4. 前端ui框架_推荐几个移动端前端UI框架

    SUI Mobile http://m.sui.taobao.org/components/#popup SUI Mobile 是一套基于 Framework7 开发的UI库. MUI MUI-最接近 ...

  5. android 子module混淆_Android 矢量图详解

    官方文档 关于 Vector,在官方开发指南中介绍.本文章是由个人翻译官方指南然后添加个人理解完成. 由于个人精力有限,多个渠道发布,排版上可能会有问题,如果影响查看,请移步 Android 开发者家 ...

  6. android ui怎么用ps切图,怎样用ps对设计稿进行一键切图?

    切图这项流程在制作页面中所站的地位是很高的,不能小看了切图,肯定有人会说:我觉得切图很简单啊,唰,一刀,唰,一刀...如果你觉得这样子的话,我就只能呵呵了.为啥我说切图地位很重要了?因为在你切图之前, ...

  7. UI框架-JQuery Smart / 淘宝JS库 KISSY UI

    JQuery Smart UI 简介(五) - 框架设计[前篇](前台UI层架构) JQuery SmartUI 2.0 方案启动 http://docs.kissyui.com/   KISSY U ...

  8. Android 进阶路线(思维导图),Android开发实用必备的几款插件

    今年的Google IO 大会上,Google 宣布Kotlin 成为Android 的官方语言,Kotlin 终于被扶正.Kotlin 顿时火遍了各个技术社区和网站,掀起了一股学习Kotlin 的热 ...

  9. Android Binder框架实现之Parcel详解之基本数据的读写

       Android Binder框架实现之Parcel详解之基本数据的读写 Android Binder框架实现目录: Android Binder框架实现之Binder的设计思想 Android ...

最新文章

  1. 刷题_thinkinginjava_吸血鬼数字
  2. oracle 存储过程(分析理解)
  3. codeforce No to Palindromes!(枚举)
  4. php for嵌套循环_PHP中的for循环怎样嵌套
  5. 初试超轻量级actor框架——akka
  6. 汉化破解:Restorator辅助绕过注册码
  7. 扩展欧几里得算法 思想及模板代码
  8. Django面试题(一)django的中间件最多可以写几个方法?使用中间件做什么?
  9. java rxtx version_RXTX Version mismatch
  10. SQL中drop,delete和truncate的异同
  11. WPS安装后显示系统字体找不到
  12. 计算机时间单位,时间单位换算表与计算机单位换算
  13. 数据分析方法-AARRR模型分析方法
  14. 我对目前人工智能和机器学习的看法!
  15. 蓝牙耳机蓝牙音箱出口加拿大亚马逊ICID认证周期费用
  16. mac搭建大数据开发环境
  17. C++使用TinyXml2解析Xml
  18. 喜讯 | 人大金仓荣获行业信息化领航企业奖
  19. 初学者的图片SEO指南 - 为搜索引擎优化图片
  20. 海上垂直无人机垂直起降平台

热门文章

  1. 比锐速还强的 TCP拥塞控制技术 —— TCP-BBR 测试及开启教程
  2. 2019秋季高校计算机等级考试,关于组织2019年秋季省高校计算机等级考试报名工作的通知...
  3. 如何使用js实现两张图片的相似度比较
  4. tomcat宕机无法响应问题研究解决
  5. ECDS是电子商业汇票系统
  6. C语言函数(函数嵌套、递归调用)+局部变量和全局变量+extern关键字的使用+Visual Studio简单的使用教程+数据存储类别+内部函数外部函数
  7. 关乎谷歌浏览器打不开ftp的问题
  8. 团队任务分配管理软件,可以分配团队任务的团队管理软件
  9. ftp客户端android版,Primitive FTPd(FTP客户端)
  10. 雷赛服务器信号er020,雷赛伺服故障以及代码解决方案