在Android中创build和使用9贴片图像
我最近听说了9个补丁的图像。 我知道它的9平铺,是可拉伸的。 我想了解更多。
-
我如何创build一个9补丁的图像?
有没有工具? 我可以从AndroidSDK或代码创build它吗?
-
9-patch比普通png的主要优点?
(是否可以根据屏幕dynamic/自动拉伸?)
今天我发现了九个补丁图像。 在其他答案链接到的文件是好的,但他们真的缺乏例子。 这个小教程最后有一些很好的例子来回答你的问题的第二部分,解释缩放是如何工作的 – 不仅仅是button,还有框架。 九个补丁可以指定不连续的区域进行缩放。
为了充实第一部分问题的答案,SDK附带了一个简单编辑器的“draw9patch”(在工具文件夹中)。 这是另一个可下载的,它是一个很好的,它有一个简单但聪明的默认图像。
大部分的例子都是关于创build一个9-patch的镜像,但是实现的细节通常都是很高的。
上面的Nick的post – 提供了一个良好的9补丁教程 ,提供了一个工作项目下载文件,节省了一天。
这里是主要的实现细节,为我工作(一旦你有9补丁图像准备去) :
-
引用可绘制的名字,但不包括.9.png(在eclipse中自动完成将照顾这个)
-
确保在主/可绘制文件夹下只有一个图像(不是每个dpi文件夹的版本)
-
图像必须指定使用:背景,而不是:src (这让我卡住了一会儿)
android:background="@drawable/splash_logo"
-
确保包含它的图像和布局正在使用:
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幅图像不易出错,具有很高的可重用性。
这是很好的工具: 点击这里。
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