org.xmlpull.v1.XmlPullParserException:二进制XML文件行#5:<nine-patch>需要有效的9补丁源映像</nine-patch>

时间:2013-04-16 13:18:43

标签: android android-xml seekbar nine-patch

我想创建一个自定义搜索栏。与其他资源一起,我遵循了以下两个例子:

http://developer-dot-android.blogspot.ro/2012/03/custom-seekbar-tutorial.html

http://www.mokasocial.com/2011/02/create-a-custom-styled-ui-slider-seekbar-in-android/

http://code.google.com/p/android-apktool/wiki/9PatchImages

我尝试过的所有内容都崩溃了:

   ........
  <nine-patch
    xmlns:android="http://schemas.android.com/apk/res/android"
    android:dither="true"
    android:src="@drawable/whitepatch">
  </nine-patch>

使用:

Caused by: org.xmlpull.v1.XmlPullParserException: Binary XML file line #5: <nine-patch> requires a valid 9-patch source image
04-16 15:46:45.242: E/AndroidRuntime(20508):    at android.graphics.drawable.NinePatchDrawable.inflate(NinePatchDrawable.java:320)
04-16 15:46:45.242: E/AndroidRuntime(20508):    at android.graphics.drawable.Drawable.createFromXmlInner(Drawable.java:881)
04-16 15:46:45.242: E/AndroidRuntime(20508):    at android.graphics.drawable.LayerDrawable.inflate(LayerDrawable.java:165)
.....

我尝试使用来自sdk的draw9patch.bat工具生成我自己的9补丁图片described here.(没有任何其他解决方法,因为我不知道如何,只需导入.png然后将其另存为.9.png)。

我尝试将第一个教程中使用的whitepatch.9.png复制/粘贴到我的项目中。  结果相同。我真的不知道该怎么做。请帮帮我!

enter image description here

1 个答案:

答案 0 :(得分:0)

Nine Patch Image是一张PNG图像,扩展名为9.png。 Nine Patch图像包含有关可缩放区域(顶部和左侧)和内容区域(右侧和底部)的元信息。您必须通过在顶部和左侧标记1个像素(黑色)来提及强制可缩放区域,不包括在缩放时失真的角落,否则Android将无法将其识别为九个补丁图像。

以下链接将更有帮助

http://radleymarx.com/blog/simple-guide-to-9-patch/

http://developer.android.com/guide/topics/graphics/2d-graphics.html#nine-patch

https://github.com/chrislondon/9-Patch-Image-for-Websites/wiki/What-Are-9-Patch-Images

http://www.androiddom.com/2011/05/android-9-patch-image-tutorial.html