首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >DIY九-贴片未复归

DIY九-贴片未复归
EN

Stack Overflow用户
提问于 2012-03-29 17:17:50
回答 1查看 646关注 0票数 1

我尝试在我的android应用程序中集成9个补丁功能,以使拉伸看起来更好。看起来九个补丁文件是一个像素边框的基本png文件.然而,当尝试自己构建9个补丁文件时,android和eclipse都不会将文件重命名为可绘制的文件。在文章的末尾,您可以看到我使用ImageMagick进行DIY九修补程序的脚本。

如果我按原样使用DIY九片,它就不工作了。如果我使用draw9patch打开它,然后保存它并退出,它就能工作了!有什么特殊的需要做DIY九补丁吗?

我希望你能帮我!

非常感谢。

代码语言:javascript
复制
# 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

(对不起,我还不能发照片!)

EN

回答 1

Stack Overflow用户

发布于 2012-11-03 23:16:22

您所链接的前九个修补程序无效。一个像素边框中的每个像素都需要完全透明或完全黑色。当我放大底部的边框时,左边的透明像素和右边的黑色像素之间有一个灰色像素。这是无效的。

当您使用ImageMagick生成边框时,可能黑色在边框中的位置最终是25.5个像素,因此ImageMagick将像素染成灰色。但是,它必须是透明的,或者是完全黑色的。

票数 1
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/9930241

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档