在Android中创build和使用9贴片图像

我最近听说了9个补丁的图像。 我知道它的9平铺,是可拉伸的。 我想了解更多。

  • 我如何创build一个9补丁的图像?

    有没有工具? 我可以从AndroidSDK或代码创build它吗?

  • 9-patch比普通png的主要优点?

    (是否可以根据屏幕dynamic/自动拉伸?)

今天我发现了九个补丁图像。 在其他答案链接到的文件是好的,但他们真的缺乏例子。 这个小教程最后有一些很好的例子来回答你的问题的第二部分,解释缩放是如何工作的 – 不仅仅是button,还有框架。 九个补丁可以指定不连续的区域进行缩放。

为了充实第一部分问题的答案,SDK附带了一个简单编辑器的“draw9patch”(在工具文件夹中)。 这是另一个可下载的,它是一个很好的,它有一个简单但聪明的默认图像。

大部分的例子都是关于创build一个9-patch的镜像,但是实现的细节通常都是很高的。

上面的Nick的post – 提供了一个良好的9补丁教程 ,提供了一个工作项目下载文件,节省了一天。

这里是主要的实现细节,为我工作(一旦你有9补丁图像准备去)

  1. 引用可绘制的名字,但不包括.9.png(在eclipse中自动完成将照顾这个)

  2. 确保在主/可绘制文件夹下只有一个图像(不是每个dpi文件夹的版本)

  3. 图像必须指定使用:背景,而不是:src (这让我卡住了一会儿)

    android:background="@drawable/splash_logo"

  4. 确保包含它的图像和布局正在使用:

    android:layout_width="fill_parent"
    android:layout_height="fill_parent"

我如何创build一个9补丁的图像? 有没有工具? 我可以从AndroidSDK或代码创build它吗?

当你search一个主要的search引擎的android 9-patch tool ,第一次打的是Android开发人员文档页面上的draw9patch工具 。

9-patch比普通png的主要优点? (是否可以根据屏幕dynamic/自动拉伸?)

Android开发人员文档包含描述九个修补程序PNG文件的其他页面。 这个文档包括如下的段落:

NinePatchDrawablegraphics是一个可伸缩的位图图像,Android会自动resize以容纳您将其放置在背景中的视图的内容。 NinePatch的一个例子是标准Androidbutton使用的背景 – button必须伸展以容纳不同长度的string。

使用9格式的图像,您可以select图像的哪一部分可以被拉伸。 它必须是PNG图像,名称必须以.9.png(something.9.png)结尾。

http://developer.android.com/tools/help/draw9patch.html

所有密度的简单工具:

http://android-ui-utils.googlecode.com/hg/asset-studio/dist/nine-patches.html

1. NinePatch图像是什么?

NinePatch图像是PNG图像,用于标记可以拉伸的图像部分。 他们有一个像image_name.9.png的扩展名。

2.他们在哪里存储在Android项目?

 res/drawable/image_name.9.png 

3.如何为您的anndroid应用程序创buildNinePatch图像?

Android SDK在您的Android SDK /tools文件夹中包含一个WYSIWIG draw9patch.jar工具。

在这里输入图像说明

9-patch比普通png的主要优点

实际上9个补丁图像是可伸缩的,可重复的图像缩小到最小的尺寸。图像不会在不同的屏幕尺寸下拉伸和松弛。 记忆还有一个最大的好处。

同样的小尺寸内存可以重复使用不同的屏幕尺寸的设备 。 精心devise的9幅图像不易出错,具有很高的可重用性。

https://developer.android.com/studio/write/draw9patch.html

这是很好的工具: 点击这里。

9补丁图像是可伸缩的,可重复的图像缩小到最小的尺寸。 最简单的例子是,如果你要采取一个圆形的格子,并将其切成9个方格,就像是一个井字棋板。 四个angular落根本不会改变大小,但会是静态的,而另外5个将会被拉伸或重复,以使整个图像适当地缩放。

有了这个解释和CSS3的出现,你可能会认为没有理由使用9个补丁映像,但名称“9 patch”是一个用词不当的地方。 图像可以切成更小的片断。

9补丁图像包含一个索引,通过向图像添加一个1px的边框。 边框中的颜色决定了一块是静态的(不缩放),它延伸,或重复。

Google幻灯片: https : //docs.google.com/present/view? id = dc7ghz8w_34f8338rcg

另请参阅Android开发者有关9-patch图片的信息: http : //developer.android.com/guide/topics/graphics/2d-graphics.html#nine-patch