2012-03-29 2 views
1

私はアンドロイドアプリに9つのパッチ機能を統合して、ストレッチ性を向上させようとしています。 9パッチファイルは、1ピクセル境界を持つ基本的なpngファイルです。しかし、自分でnine-patchファイルを作成しようとすると、アンドロイドとeclipseの両方がファイルをドロウアブルとして再作成しません。投稿の最後に、ImageMagickを使ってDIY 9パッチに使用するスクリプトを見ることができます。DIYナインパッチが再調整されていない

DIY ninepatchをそのまま使用しても動作しません。私がdraw9patchを使ってそれを開き、それを保存して終了すると、それは動作します! DIY 9パッチを作成するために必要なことはありますか?

私があなたを助けてくれることを願っています!

ありがとうございます。

# 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 

注これらの2つのファイルのサイズの違い:

  • この方法では9パッチ

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

  • 同じ9パッチ、開かれ、 draw9patchを使用して保存

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

(申し訳ありませんが、私はまだ画像を投稿することはできません!)

+1

Eclipseでプロジェクトをきれいにしてから、エラーをコンソールに投稿してください。実際に描かれたものを見ることができるように最後の9pngを投稿してください。 – Theo

+0

draw9patchで保存する前と後で9パッチイメージをポストします。 –

答えて

1

リンクされた最初の9つのパッチが無効です。 1つのピクセル境界内のすべてのピクセルは、完全に透明であるか完全に黒色である必要があります。下の境界を拡大すると、透明なものと左のものとの間に灰色のピクセルがあります。それは有効ではありません。

ImageMagickを使用して枠線を生成したとき、境界の黒の位置が半分の25.5ピクセルになってしまうことがありました。しかし、それは透明または完全な黒のいずれかである必要があります。

関連する問題