14

私はグーグルとアンドロイドでこの質問を見つけるのに十分な試みをしました。また、いくつかの試行錯誤を行いましたが、この質問を得ることができませんでした。Androidの「DrawNinePatch」の画像を学んでいました。私が知っている基本的なことの1つは、処理する画像はすべて.png形式である必要があるということです(すでに.9.pngである場合は、ツールによって無視されます)。でも、

  1. 「伸縮性のあるパッチ」が文字通り何を意味するのか理解できませんでしたか?
  2. .png画像の外側に黒い点を描くとどうなりますか?(プレビューペインには、発生している変更が表示されますが、どのように変更されるかはわかりません)
  3. 画像の左側/上部に黒い点を描くと、プレビューにいくつかの変化が見られます。しかし、画像の右側/下側で同じことを行っても効果がないのはなぜですか?
  4. 画像自体を処理しようとするときに、なぜこのツールが主に背景に使用されるのですか?
  5. 単純なbutton.png(android sdkで指定)を変更しようとしています。このツールを使用して黒い線を描くと、画像を「引き伸ばす」のではなく、画像のサイズが小さくなります。なんで ?
  6. 「ロックの表示」、「コンテンツの表示」、「パッチスケール」など、以下に示すオプションの重要性は何ですか?

たくさんの質問をしてしまったことをお詫びしますが、Androidのオンラインドキュメントでは、初心者には十分に説明されていません。誰かがこれらに答えることができれば、それはこのフォーラムを検索するすべての初心者のための準備ができた参照になります。

4

1 に答える 1

26

ストレッチ可能なパッチにより、基本的に、繰り返したい画像のピクセルの行と列をAndroidに指示します。標準画像を引き伸ばす場合、2つの可能性があります。1つは比例して拡大縮小されますが、補間により鮮明さが失われます。2つ目は、不均衡にスケーリングされ、シャープネスだけでなく形状も失われます。不均衡なスケーリングの例を以下に示します。
伸ばされた

したがって、黒い線の目的は、画像のどの領域を安全に繰り返すことができるかをAndroidに伝えます。上隅は引き伸ばすことができる列を定義し、左隅は引き伸ばすことができる行を定義します。下隅と右隅は、実際のコンテンツ領域(たとえば、ボタンでテキストを配置できる場所)を定義するだけであり、フレームを埋めるために余分なスペースを予約できます。下の画像では、フレームの外側にある2つの黒いピクセルが画像の行を定義し、上の1つが列を定義していることがわかります。


例

以下に、さまざまなサイズに伸ばした9パッチの結果を示します。拡大して幅を広げると、定義された伸縮可能な列の左右の画像の半分が新しいサイズの左右に揃えられ、定義された列が繰り返されてその間のスペースが埋められます。定義された行でも同じことが起こります。複数を使用する場合(2つ以上のストレッチ行/列を使用できるとは思わない)、スペースを両方で均等に埋めます。この場合、グラデーションを中央で均等に分割するために使用しました。

引き伸ばされた画像の結果

于 2010-11-20T06:39:39.927 に答える