DIY九修补没有重新调整

问题描述:

我尝试在我的Android应用程序中集成九个修补功能,以使拉伸看起来更好。看起来九个补丁文件是具有1个像素边界的基本PNG文件。然而,当我尝试自己构建九个补丁文件时,android和eclipse都不会将文件作为可绘制对象。您可以在帖子的末尾看到我使用ImageMagick进行DIY九贴片的脚本。DIY九修补没有重新调整

如果我使用DIY ninepatch,它不起作用。如果我用draw9patch打开它并保存并退出,它就可以工作!是否有任何特定的需要做DIY九贴?

我希望你能帮助我!

非常感谢。

# make a rounded square background with 1 px border 
convert -size 100x100 xc:lightblue ninepatch.9.png 
convert ninepatch.9.png -format 'roundrectangle 1,1 %[fx:w],%[fx:h] 15,15' info: > tmp.mvg 
convert ninepatch.9.png -border 1 -alpha transparent -background none -fill white -stroke none -strokewidth 0 -draw "@tmp.mvg" tmp.png 
convert ninepatch.9.png -matte -bordercolor none -border 1 tmp.png -compose DstIn -composite ninepatch.9.png 

# draw ninepatch info 
convert ninepatch.9.png -format 'stroke-dasharray 1 1 line %[fx:w*0.25],0 %[fx:w*0.75],0' info: > tmp.mvg 
convert ninepatch.9.png -format 'line 0,%[fx:h*0.25] 0,%[fx:h*0.75]' info: >> tmp.mvg 
convert ninepatch.9.png -format 'fill black line %[fx:w*0.25],%[fx:h-1] %[fx:w*0.75],%[fx:h-1]' info: >> tmp.mvg 
convert ninepatch.9.png -format 'line %[fx:w-1],%[fx:h*0.25] %[fx:w-1],%[fx:h*0.75]' info: >> tmp.mvg 
convert ninepatch.9.png -fill none -stroke black -strokewidth 0.5 -draw "@tmp.mvg" ninepatch.9.png 

注意这两个文件之间的大小差异:

  • 九宫用这种方法

http://dl.dropbox.com/u/16984035/ninepatch.9.png

  • 相同九宫,开使用draw9patch保存

http://dl.dropbox.com/u/16984035/ninepatch-draw9patch.9.png

(对不起,我不能发表图片呢!)

+1

请执行项目在Eclipse干净,然后张贴错误没有显示在控制台。还张贴最后的9png,以便我们可以看到实际绘制的内容。 – Theo 2012-03-29 17:35:09

+0

后前及在draw9patch保存后9修补图像。 – 2012-03-29 18:26:52

您链接前九个补丁无效。一个像素边框中的每个像素都需要完全透明或完全黑色。当我放大底边框,有透明的人向左和黑色的的权利之间的灰色像素。这是无效的。

当你使用ImageMagick,在结束了像25.5半像素边框黑色的也许是位置,所以ImageMagick的彩色像素产生的灰色边框。但是,它需要透明或全黑。