gpt4 book ai didi

android - DIY 九贴无法识别

转载 作者:行者123 更新时间:2023-11-30 04:16:19 27 4
gpt4 key购买 nike

我尝试在我的 Android 应用程序中集成 9-patch 功能,以使拉伸(stretch)看起来更好。看起来九补丁文件是基本的 png 文件,边框为 1 像素。但是,当我尝试自己构建 9-patch 文件时,android 和 eclipse 都不会将文件 reconized 为 drawable。您可以在帖子末尾看到我使用 ImageMagick 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

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

  • 用这个方法打 9-patch

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

  • 相同的 9-patch ,使用 draw9patch 打开并保存

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

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

最佳答案

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

当您使用 ImageMagick 生成边框时,可能边框中黑色的位置最终变成了像 25.5 这样的半像素,因此 ImageMagick 将像素着色为灰色。但是,它必须是透明的或全黑的。

关于android - DIY 九贴无法识别,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/9930241/

27 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com