一 写在前面

作为一枚Android 开发者,适配的问题,使我们不得不去面对的问题, .9.PNG是安卓开发里面的一种特殊的图片,这种格式的图片通过ADT自带的编辑工具生成,使用九宫格切分的方法,使图片支持在android 环境下的自适应展示。PNG的的英文名称为Portable Network Graphics,即便携式网络图片。另有说法是名称来源于非官方的“PNG is Not GIF”。

二 .9.png 介绍

什么叫.9.PNG呢,这是Android开发里面的一种特殊的图片。 这种格式的图片在android 环境下具有自适应调节大小的能力。
(1)允许开发人员定义可扩展区域,当需要延伸图片以填充比图片本身更大区域时,可扩展区的内容被延展。
(2)允许开发人员定义内容显示区,用于显示文字或其他内容

9.png图片他的具体不同之处,它的四周与普通的png图片相比多了一个像素位的白色区域,该区域只有在图片被还原和制造的时候才能看到,当打包后无法看见,并且图片的总像素会缩小2个像素,比如25x25像素的9.png图片被打包后会变成23x23像素。在制作的时候要注意掌握尺寸。同时,一个几KB或者几十KB的图片,变得非常的小,一般只有几百个字节那么大。

如下图所示:


上方(1)和左侧(2)的黑线交叉的部分即可扩展区域
下方(3)和右侧(4)的黑线交叉的部分即内容显示区域(如做button背景图时,button上文字的显示区域)
没有黑色条的位置覆盖的区域是图片拉伸时保持不变。

用它可以实现部分拉伸,从而实现图片在Android系统上的完美应用
拆过系统framework-res.apk包的童鞋细心点看,里面有许多有.9.PNG后缀的图片
这些图片是经过Android的工具进行特殊处理过的,如果不处理的话,直接用PNG图就会有失真,拉伸不正常的现象出现。

有些图片的边上有红线(如下图),它表示在这图片为背景的容器组件上子组件所能放置的区域(需要和黑线的扩展结合起来看)。
简单的说,就是红线用于控制,去掉不需要的,多余的边框部分的内容。自己根据实际需要,去加上对应的红线,用于去除不需要的多余的边框。

图2 中红色的区域,是图1中红线对应的区域。

图3 中Button 和图片未设置红线,Button和图片的周围会有一定的空隙;

图4 中Button 和图片是设置了红线的显示效果,红线的作用一目了然;


图1

图2


图3


图4

三 .9.png 制作

需要的工具:java的jdk、android的sdk中tools目录下的draw9patch.bat

  • 首先我们准备一张需要拉伸的图片,然后将draw9patch.bat打开后,把我们准备的图片拉拽到draw9patch中进行编辑。
  • 将鼠标放在白色边框,点住左键不放拖动,注意,出了图片的四条边意外,其他的区域是不可编辑的。上端的黑色横条表示图片在水平方向上可以拉伸的区域,左边的黑色横条表示图片可以在竖直方向上被拉伸的区域, 右边黑色条位置向左覆盖的区域表示图片纵向显示内容的区域,底边黑色条位置向上覆盖的区域表示图片横向显示内容的区域。
  • 如果失误多选了部分,可按住shift键,点击鼠标左键去掉黑色条,工具的右侧可以进行效果的预览。
  • 完成后,点击保存即可。


参考:

http://www.crifan.com/android_meaning_for_red_line_in_border_of_9_patch/


更多相关文章

  1. Android——LinearLayout按下(state_pressed)或获取焦点时(state
  2. Android自带人脸识别
  3. 【荐货】Android主流技术知多少?
  4. Android(安卓)textView drawableXX图片大小
  5. android 拍照和从相册选择组件
  6. android 下载图片及时显示
  7. Android相册及小小秒表震动(17)
  8. Android入门:查看服务器图片应用
  9. 用android来实现图片的绘制以及旋转缩放案例分析

随机推荐

  1. 类成员重载、全局成员、命名空间声明与访
  2. 数据可视化工具在小学信息技术教学中的实
  3. Python语言的排序算法有哪些?Python学习
  4. Oracle OCP 19c 认证1Z0-083考试题库(第1
  5. CISSP学习:第7章PKI和密码应用
  6. 大华全景枪球联动控制失败问题排查
  7. 2020年,企业数字化转型的思考总结
  8. 2021-2-23:Java 文件映射内存是如何更新到
  9. 2021春节计划复盘-目标设定与任务管理
  10. Horizon虚拟桌面几例故障解决