Android 系列 5.11使用九片文件 (9-patch)
2017-01-10 09:28
183 查看
5.11使用九片文件 (9-patch)
问题
在设计用户界面时,您希望更改默认视图背景以适应应用程序的整体风格。背景必须能够针对不同大小的视图正确缩放。
解
使用Android的九片文件为视图大小变化时的背景缩放提供支持。
讨论
在下面的图片中,单词Text具有一个圆角矩形(带灰色背景的黑色边框)的背景。然后矩形被均匀地缩放以适合较长文本。作为缩放的结果,角和垂直边缘已经失真,以使圆角矩形具有不平衡的外观。将其与背景保持平衡的第二个较长文本进行比较。
为了正确地缩放背景,图像的所选部分在特定方向上缩放或根本不缩放。哪些部分被缩放,并且在该图中示出了哪个方向。
X指示角不被缩放,垂直边垂直缩放,水平边被水平缩放,并且中心区域在两个方向缩放。因此,名称九拼图:
4 corners +
2 vertical edges +
2 horizontal edges +
1 central area
---------------------
9 areas (patches) in total
在以下示例中,EditText的默认黑色边框和灰色渐变背景将替换为带有黑色边框的实心绿松石背景。所需的圆角矩形在图形程序(例如GIMP,http://www.gimp.org或Paint.NET,http://www.getpaint.net/)中绘制。矩形被绘制得尽可能小(类似于圆形)以支持小视图。有1像素边框和透明背景。绘制具有橙色边框的矩形的版本以支持用于键盘导航的聚焦指示。
Android需要知道哪些部分的垂直和水平边缘需要缩放,以及视图内容相对于背景的位置。这些因素是从绘制在图像中的指标确定的。要应用这些指标,请使用Android SDK工具提供的draw9patch程序。启动程序并打开背景图像(将其拖放到draw9patch对话框上)。该程序将图像扩大一个像素。你将在这个额外的1像素边上绘制指标线。使用缩放滑块放大图像。在左侧和顶部边缘,绘制指示线以标记哪些垂直和水平像素可以复制缩放。在右侧和底部边缘,绘制指示线以显示可以放置内容的位置。
下图显示了内容展示位置的右侧和底部标记。如果内容不适合所指示的矩形,则使用左侧和顶部标记所示的区域拉伸背景图像。
将标记的文件保存在项目的res / drawable文件夹中。 Android通过文件名确定是否使用九种补丁缩放而不是均匀缩放来缩放图像;它在.png文件扩展名前必须有.9。例如,名为turquoise.png的图像文件将命名为turquoise.9.png。要使用背景图片,请在布局中引用它,android:background =“@ drawable / turquoise”。如果您还使用另一个图像来指示视图焦点,请使用选择器文件 - 例如,将此XML文件保存在drawable文件夹中为selector.xml:
引用此为android:background =“@ drawable / selector”。
注意,新的视图背景使用的空间比默认值少一点(这对于知道项目是否需要更多的屏幕区域很有用)。
九片文件不限于简单的视图背景。这九片文件用于构图。
注意左上角和顶部缩放指示符如何在不能缩放的细节(因为它会失真)处被分割。
问题
在设计用户界面时,您希望更改默认视图背景以适应应用程序的整体风格。背景必须能够针对不同大小的视图正确缩放。
解
使用Android的九片文件为视图大小变化时的背景缩放提供支持。
讨论
在下面的图片中,单词Text具有一个圆角矩形(带灰色背景的黑色边框)的背景。然后矩形被均匀地缩放以适合较长文本。作为缩放的结果,角和垂直边缘已经失真,以使圆角矩形具有不平衡的外观。将其与背景保持平衡的第二个较长文本进行比较。
为了正确地缩放背景,图像的所选部分在特定方向上缩放或根本不缩放。哪些部分被缩放,并且在该图中示出了哪个方向。
X指示角不被缩放,垂直边垂直缩放,水平边被水平缩放,并且中心区域在两个方向缩放。因此,名称九拼图:
4 corners +
2 vertical edges +
2 horizontal edges +
1 central area
---------------------
9 areas (patches) in total
在以下示例中,EditText的默认黑色边框和灰色渐变背景将替换为带有黑色边框的实心绿松石背景。所需的圆角矩形在图形程序(例如GIMP,http://www.gimp.org或Paint.NET,http://www.getpaint.net/)中绘制。矩形被绘制得尽可能小(类似于圆形)以支持小视图。有1像素边框和透明背景。绘制具有橙色边框的矩形的版本以支持用于键盘导航的聚焦指示。
Android需要知道哪些部分的垂直和水平边缘需要缩放,以及视图内容相对于背景的位置。这些因素是从绘制在图像中的指标确定的。要应用这些指标,请使用Android SDK工具提供的draw9patch程序。启动程序并打开背景图像(将其拖放到draw9patch对话框上)。该程序将图像扩大一个像素。你将在这个额外的1像素边上绘制指标线。使用缩放滑块放大图像。在左侧和顶部边缘,绘制指示线以标记哪些垂直和水平像素可以复制缩放。在右侧和底部边缘,绘制指示线以显示可以放置内容的位置。
下图显示了内容展示位置的右侧和底部标记。如果内容不适合所指示的矩形,则使用左侧和顶部标记所示的区域拉伸背景图像。
将标记的文件保存在项目的res / drawable文件夹中。 Android通过文件名确定是否使用九种补丁缩放而不是均匀缩放来缩放图像;它在.png文件扩展名前必须有.9。例如,名为turquoise.png的图像文件将命名为turquoise.9.png。要使用背景图片,请在布局中引用它,android:background =“@ drawable / turquoise”。如果您还使用另一个图像来指示视图焦点,请使用选择器文件 - 例如,将此XML文件保存在drawable文件夹中为selector.xml:
<?xml version="1.0" encoding="utf-8"?> <selector xmlns:android="http://schemas.android.com/apk/res/android"> <item android:state_focused="true" android:drawable="@drawable/turqfocus" /> <item android:drawable="@drawable/turquoise" /> </selector>
引用此为android:background =“@ drawable / selector”。
注意,新的视图背景使用的空间比默认值少一点(这对于知道项目是否需要更多的屏幕区域很有用)。
九片文件不限于简单的视图背景。这九片文件用于构图。
注意左上角和顶部缩放指示符如何在不能缩放的细节(因为它会失真)处被分割。
相关文章推荐
- Android APK系列3-------使用platform密钥来给apk文件签名
- 自学Android系列 笔记2 使用文件进行数据存储
- Android深入浅出系列课程---Lesson4-AAF110429_介绍Manifest文件的使用
- Android APK系列3-------使用platform密钥来给apk文件签名
- Android APK系列3-------使用platform密钥来给apk文件签名
- Android 开发基础系列——使用javah生成头文件
- Android-NinePatch PNG文件(点九图)的使用
- Android 使用 aidl 文件创建服务示例
- WCF系列(一) -- 完全不使用配置文件构建和使用WCF服务
- WCF系列(二) -- 使用配置文件构建和使用WCF服务
- Android系列之如何使用Alarm
- WCF系列(二) -- 使用配置文件构建和使用WCF服务
- WCF系列(二) -- 使用配置文件构建和使用WCF服务
- WCF系列(一) -- 完全不使用配置文件构建和使用WCF服务
- Android.mk文件语法规范及使用模板
- 【算法系列】使用LINQ来检测和删除重复的文件
- Android.mk文件语法规范及使用模板
- 用户系列之四:用户登录过程之配置文件的使用详解
- 安装APK文件到Android模拟器和Android sdcard的使用
- Struts1.x系列教程(15):使用DownloadAction类统计文件下载次数