在Android中创建和使用9补丁图像

Niz*_*zam 47 android nine-patch android-drawable

我最近听说过9张补丁图片.我知道它的9平铺并且是可拉伸的.我想更多地了解它.

  • 如何创建9补丁图像?

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

  • 9-patch主要优于普通png?

    (它是否可根据屏幕动态/自动伸缩?)

Nic*_*ate 43

今天我发现了九张补丁图片.官方文档(链接到其他答案)我想是可以的,但它确实缺乏示例.

这个小教程最后有一些很好的例子,回答你问题的第二部分,解释缩放如何工作 - 不仅仅是按钮 - 还有框架,它有一个完整的示例项目,你可以下载和使用.与PNG相比,最重要的优势是九个补丁图像可以指定不连续的区域.

为了回答问题的第一部分,SDK(现在是Android Studio)附带了"Draw 9-patch"(SDK工具文件夹中的"draw9patch"),这是一个简单的编辑器.这是一个更好的,也是开源的.它有一个简单但聪明的默认图像.


Gen*_* Bo 21

大多数示例都讨论了创建9补丁图像,但实现细节通常保持在较高水平.

尼克上面的文章 - 提供了一个很好的9补丁教程,提供了一个工作项目下载文件,节省了一天.

以下是适合我的主要实现细节(一旦准备好了9补丁图像):

  1. 使用名称引用drawable但不包括.9.png(在eclipse中自动完成将处理此问题)

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

  3. 图像必须使用:background,而不是:src (这让我卡住了一段时间)

    android:background="@drawable/splash_logo"

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

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


Com*_*are 9

如何创建9补丁图像?有没有工具?我可以从AndroidSDK或代码创建吗?

当您搜索主要搜索引擎时android 9-patch tool,首先点击draw9patch工具上的Android开发人员文档页面.

9-patch主要优于普通png?(它是否可根据屏幕动态/自动伸缩?)

Android开发人员文档包含描述九个补丁PNG文件的其他页面.本文档包括以下段落:

NinePatchDrawable图形是一个可伸缩的位图图像,Android会自动调整大小以容纳您将其作为背景放置的View的内容.NinePatch的一个示例用途是标准Android按钮使用的背景 - 按钮必须拉伸以适应各种长度的字符串.


小智 6

使用9补丁图像,您可以选择图像的哪个部分可以拉伸.它必须是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