码迷,mamicode.com
首页 > 其他好文 > 详细

Drawable资源——NinePatchDrawable

时间:2016-05-03 18:16:13      阅读:239      评论:0      收藏:0      [点我收藏+]

标签:

NinePatchDrawable 九修补程序

1,认识

它表示的是一张.9格式的图片,.9图片可以自动地根据所需的宽/高进行相应的缩放并保证不失真。

文件位置 ︰

    res/drawable/filename.xml

    文件名用作资源 id。

语法

 <?xml version="1.0" encoding="utf-8"?>

    <nine-patch

        xmlns:android="http://schemas.android.com/apk/res/android"

        android:src="@[package:]drawable/drawable_resource"

        android:dither=["true" | "false"] />

2,各元素属性注解    

     xmlns:android
      字符串。所需。定义 XML 命名空间,必须是
         "
http://schemas.android.com/apk/res/android". 
    android:src
      可绘制资源。所需。对九修补程序文件的引用。
    android:dither
      布尔值。启用或禁用位图的抖动,如果位图不具有相同的像素屏幕配置 

       (例如 ︰ 与 RGB 565 屏幕 ARGB 8888 位图)。  

3,代码示例

<?xml version="1.0" encoding="utf-8"?>

<nine-patch xmlns:android="http://schemas.android.com/apk/res/android"

    android:dither="false"

  android:src="@drawable/a" />

注意:@drawable/a中的a图片就是drawable中a.9.png图片

4,Android 9.png格式图片原理和使用

I 认识     

  自动横屏的功能,同一幅界面会在随着手机(或平板电脑)中的方向传感器的参数不同而改变显示的方向,在界面改变方向后,界面上的图形会因为长宽的变化而产生拉伸,造成图形的失真变形。
    Android平台有多种不同的分辨率,很多控件的切图文件在被放大拉伸后,边角会模糊失真,在android平台下使用点九PNG技术,可以将图片横向和纵向同时进行拉伸,以实现在多分辨率下的完美显示效果。
    “点九”是andriod平台的应用软件开发里的一种特殊的图片形式,文件扩展名为:.9.png
    draw9patch就是帮助我们制 作.9.PNG格式资源的一个小工具。
 9.png格式图片和普通图片相比:
  9.png 格式图片是android平台上新创的一种被拉伸却不失真的图片,它与普通png图片相比多了一个像素位的白色区域,该区域只有在图片被还原和制作的时候 才能看到,打包后无法看到,并且图片的总像素会缩小2个像素,比如23X23像素的9.png图片打包后会变成21X21,所以在制作的时候要注意掌握尺 寸,并且在我们制作的9.png时候会发现一个几KB或几十KB的图片会变得非常小,一般只有几百个字节那么大,系统加载起来会更加流畅。
      特点:
        a,这种格式的图片在android 环境下具有自适应调节大小的能力。
        b,允许开发人员定义可扩展区域,当需要延伸图片以填充比图片本身更大区域时,
           可扩展区的内容被延展。
        c,允许开发人员定义内容显示区,用于显示文字或其他内容

文件位置: res/drawable/xxx.9.png

 

II 9.png格式图片制作步骤:   


 (1) 使用 9.png格式图片的制作工具需要下载jdk安装,百度搜索:jdk-6u20-windows-i586,
安装包大小80M左右。然后使用andriod模拟器android-sdk-windows,打开SDK/tools目录下的“draw9patch.bat”文件:

技术分享
(2)出现弹框如下,
技术分享
(3)点击“运行”按钮后,出现以下弹框,我们就可以制作.9.png图片了.
技术分享
(4)将你用PS制作的图片素材,拖到该窗口中,出现如图: 
技术分享
解释:边缘的白色透明框就是上述所讲的所加的像素框
(5) 解释:
                        1号黑色条位置向下覆盖的区域表示图片横向拉伸时,只拉伸该区域 
                        2号黑色条位置向右覆盖的区域表示图片纵向拉伸时,只拉伸该区域   
                        3号黑色条位置向左覆盖的区域表示图片纵向显示内容的区域 
                        4号黑色条位置向上覆盖的区域表示图片横向显示内容的区域 
                          没有黑色条的位置覆盖的区域是图片拉伸时保持不变(比如,如果图片的
                          四角为弧形的时候,当图片被任意拉伸时,四角的弧形都不会发生改变)
技术分享
(6)如果失误多选了部分,可按住shift键,点击鼠标左键去掉黑色条 ;
      选择好区域后,点击左上file-》save 9-path,保存图片,后缀名为a.9.png,此时图片效果为: 
技术分享
这个就是原始的.9.png图片,三个边多了3个黑色条,然后去除黑色条,就可以完成这个图片的制作。
(7)去除.9.png图片的黑色条
        工具下载地址:
        https://yunpan.cn/cxR6u6S8TAtZ7  访问密码 939c
        1,用工具工具xUltimate- d9pc-x86,把要去除黑线的图片放到example1\res\drawable-hdpi目录下,然后点击    xUltimate- d9pc.exe,运行,等一两秒,滴答一声就完成了去除黑线。

        2,处理好的.9图片在done\example1\res\drawable-hdpi 目录下,把图片复制出来就可以用了,即是.9.png格式的图片又非常美观。





Drawable资源——NinePatchDrawable

标签:

原文地址:http://blog.csdn.net/reflse/article/details/51303439

(0)
(0)
   
举报
评论 一句话评论(0
登录后才能评论!
© 2014 mamicode.com 版权所有  联系我们:gaon5@hotmail.com
迷上了代码!