2012-03-29 1 views
1

Я пытаюсь интегрировать в свои приложения Android девять возможностей патча, чтобы сделать растяжку лучше. Кажется, что файлы с девятью патчами являются базовыми файлами png с 1 пиксельной границей. Тем не менее, когда вы пытаетесь создать файл с девятью патчами, как андроид, так и eclipse не переконфигурируют файлы как доступные. В конце сообщения вы можете увидеть сценарий, который я использую для девяти патчей DIY с помощью ImageMagick.DIY Nine-patch не переконфигурирован

Если я использую DIY 9patch как есть, он не работает. Если я открою его с помощью 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

+0

Опубликуйте изображение с 9 патчами до и после сохранения в draw9patch. –

ответ

1

Первые девять патч вы связаны недействителен. Каждый пиксель на границе одного пикселя должен быть полностью прозрачным или полностью черным. Когда я приближаюсь к нижней границе, между прозрачными слева и серым цветом справа отображается серый пиксель. Это неверно.

Когда вы сгенерировали границу с помощью ImageMagick, возможно, положение черного на границе оказалось половинным пикселем, например 25,5, поэтому ImageMagick покрасил пиксель в серый цвет. Однако он должен быть прозрачным или полностью черным.

Смежные вопросы