3

私の質問は、タイトルにあるようなものです: なぜ 9 パッチ画像が必要なのですか? それらは本当に重要ですか?実際、彼らは実際に何をしているのでしょうか。9 パッチ イメージの概念が明確にわかりません。

9 パッチ イメージがスケーラブルであることはわかっています。では、ldpi デバイスに完全に適合する画像ボタンがあるとします。Draw 9-patch ツール (android SDK の一部) を使用すると、スケーラブルな領域にマークを付けることができ、この画像は hdpi や xhdpi デバイスにもうまく収まります。エッジは素晴らしく滑らかになります。

しかし、これは本当に良い慣行ですか、それとも単なる代替手段ですか? ldpi、mdpi、hdpi、および xhdpi デバイス用のすべてのイメージを作成する必要がありますか?それとも、1 つのイメージで Android SDK "Draw 9-patch" を使用して、Android にさまざまなデバイスを処理させることはできますか?

私はエッジについてはそれほど心配していませんが、写真の実際の内容については心配していません. コンテンツもスケーラブルですか?

4

4 に答える 4

7

コンテンツはスケーラブルであり、通常の使用ではエッジはスケーリングされません。

これらは通常、ボタンの背景やその他の画面装飾に使用され、スケーリングされたコンテンツは解像度を失うことなく無限にスケーリングできます

理想的には、必要に応じて密度依存のリソースに加えて使用し、リソースのセクション (明示的にスケーラブルであるとは述べていません) がアップスケールされず、その後ピクセル化されないようにします。

Android の Kindle アプリのスプラッシュ スクリーンを考えてみてください。木に向かって本を読んでいる少年のシルエットが特徴です。単純化したバージョンでは、地面を水平方向に無限に拡大縮小できますが、拡大縮小すると、少年は歪んで見えます。したがって、9 パッチを使用して、スケーリングできるセクションとその方向を指定できます。

ただし、それだけでは十分ではありません。低解像度のリソースのみを含めた場合、デバイスの表示密度が高ければ、リソースは最初に拡大されます。この例では、少年はアップスケーリングによってぼやけて見える可能性があり、より高い解像度のリソースがピクセレーションを防ぐのに役立った可能性がある例です。

あなたが質問を表現した方法は、(私には) 9 パッチ画像がアイコンやリソースなどのすべての描画可能なリソースを置き換えることができるかどうかを尋ねていることを示唆していますが、答えはノーです。これらは、単色のブロックを特徴とするリソースのセクション (つまり、ピクセル化できないセクション) をスケーリングするためにのみ使用されます。

--

http://developer.android.com/guide/topics/graphics/2d-graphics.html#nine-patch

于 2013-05-13T12:08:56.367 に答える
1

9 パッチの背後にあるロジックは、コーナーをスケーリングしないことです。

于 2013-05-13T12:10:51.750 に答える
1

android 9-patch は、画像の一部をスケーリングし、他の部分を元の寸法に維持する場合に使用されます。最初に頭に浮かぶアプリケーションは、あなたが述べたコーナーです。その場合はそれらを使用します。

一方、リソースを(ぼやけずに)高品質で表示したい場合は、代替リソース(ldpi、hdpi ..)を使用する必要があります。

こちらをご覧ください:スクリーンサポート

于 2013-05-13T12:10:15.103 に答える
0

9 パッチ イメージはスケーラブルですが、一部の領域に限られます。最も単純な例は、9 つ​​の部分に分割されたボックスです。角はスケーリングされません。中央のコンテンツに応じて、境界線が一方向に拡張されます。

この概念は他の言語にも存在します。iOS、CSS3、W3C ボックスモデルがその例です。それでも、次の理由により、9 パッチ イメージは簡単かつ柔軟に使用できます。

  1. 他の言語の領域ではなく、いくつかの領域を拡張できます。
  2. スケーラブルな領域は、コードではなくイメージで定義されます。
于 2013-05-13T12:20:49.907 に答える