Я пытаюсь интегрировать в свои приложения для Android девять патчей, чтобы сделать растягивание лучше.Кажется, что файлы с девятью патчами являются простыми файлами png с границей в 1 пиксель.Тем не менее, когда я пытаюсь создать файл из девяти патчей самостоятельно, и Android, и Eclipse не преобразовывают файлы как нарисованные.В конце поста вы можете увидеть сценарий, который я использую для DIY-патча с использованием ImageMagick.
Если я использую DIY-патч как есть, он не будет работать.Если я открою его с помощью 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
(Извините, я пока не могу опубликовать изображение!)