Drawable资源——NinePatchDrawable

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格式的图片又非常美观。

时间: 2024-10-01 02:44:29

Drawable资源——NinePatchDrawable的相关文章

[转]android中drawable资源的解释及例子

原文链接:         http://blog.csdn.net/wode_dream/article/details/38584693 文章中的内容参考Dev Guide中的Drawable Resources,英文好的朋友可以直接去读英文.总结这篇文章的目的是自己在使用drawable资源遇到一些问题跟大家分享下,同时整理下自己对drawable的理解. drawable资源共有10种,包括Bitmap文件.Nine-Path文件.Layer List.State List.Level

Android中的Drawable资源

在Android应用中,常常会用到Drawable资源,比如图片资源等,在Android开发中我们是用Drawable类来Drawable类型资源的. Drawable资源一般存储在应用程序目录的\res\drawable目录下,当然依据分辨率的高低可以分别存储不同分辨率的资源到如下几个目录: \res\drawable-hdpi \res\drawable-ldpi \res\drawable-mdpi \res\drawable-xdpi 其SDK文档中声明如下: 我们看到Drawable是

Drawable资源的初步使用

刚开始接触到Android的时候,看到类似下面的一个Button: 当时感觉这样的button有点像Material Design风格,真的以为是裁剪好的图片,好奇心驱使我上网查找实现的方法,原来不是裁剪好的图片,只是用xml来定义我们想要的图片,现在想想真的是挺搞笑,哈哈.实现这种图片我们可以自定义view,当然啦,最简单的还是用xml文件来定义! 现在看来,实现上面的效果,真的是太简单啦: 观察上面的图片,是一个近似长方形,但是四个角又有点有点圆滑.既然是Drawable资源,当然是在/re

android中drawable资源的解释及例子

文章中的内容参考Dev Guide中的Drawable Resources,英文好的朋友可以直接去读英文.总结这篇文章的目的是自己在使用drawable资源遇到一些问题跟大家分享下,同时整理下自己对drawable的理解. drawable资源共有10种,包括Bitmap文件.Nine-Path文件.Layer List.State List.Level list.Transition Drawable.Inset Drawable.Clip Drawable.Scale Drawable.Sh

android的drawable资源

1.android中可以通过xml文件配置资源,比如字符串啦,整数拉.浮点数等等,当然也可以配置图片资源和选择器,下面我们就看看几种图片资源的配置. @1矩形方框,带渐变色的配置代码 <?xml version="1.0" encoding="utf-8"?><shape xmlns:android="http://schemas.android.com/apk/res/android">     <!--设置黑色边

Android Drawable资源归纳

ClipDrawable代表从其他位图上截取一个“图片片段”(其他动画XML资源都放在/res/drawable/路径下)clip标签,<clip /> AnimationDrawable ,包括补间动画和逐帧动画//定义补间动画的XML资源文件以<set.../>元素作为根元素,该元素内可以指定四个子元素,定义补间动画XML资源应该放在/res/anmi路径下,Interpolator,“插值”,动画过渡的方式 <set>    //补间动画xml资源文件   <

Android实现将Drawable资源ID存储到Sdcard上

过程分为三步: 1. 将资源ID转化为Drawable 2. 将Drawable转化为Bitmap 3. 将Bitmap存储到Sdcard上 代码如下: public class MainActivity extends ActionBarActivity { @Override protected void onCreate(Bundle savedInstanceState) { super.onCreate(savedInstanceState); setContentView(R.lay

初学Android 使用Drawable资源之使用ClipDrawable资源 十六

ClipDrawable代表从其它位图上截取一个"图片片段",XML中的根元素为<clip.../>,截取的方向由clipOrientation控制 下面以一个慢慢展开的图片为例 先定义一个ClipDrawable资源文件my_clip.xml <?xml version="1.0" encoding="utf-8"?> <clip xmlns:android="http://schemas.android

Android 自定义Drawable 资源引用问题

问题的复现: Activity布局文件代码如下: <?xml version="1.0" encoding="utf-8"?> <RelativeLayout xmlns:android="http://schemas.android.com/apk/res/android" android:orientation="vertical" android:layout_width="match_par