2011-09-28 12 views
5

私は複数の画面のサポートが必要なアンドロイドアプリケーションを作成しています。これらのために私は9つのパッチイメージを使用しました。異なる2つの密度(例えば、mdpi、ldpi、hdpi)でアンドロイドの9つのパッチイメージを使用する方法。?

私の質問は、9種類のパッチ画像を使用すると、2種類の濃度のデバイスで十分かどうか、mdpi、ldpi、hdpiなどさまざまな濃度の異なる2 9種類のパッチ画像を作成する必要があるかどうかです。ドキュメントから事前

+1

[9パッチを使用する方法のAndroid PNG](http://adilsoomro.blogspot.com/2012/11/android-how-to-use-9-patch-png.html) –

答えて

17

あなたは9つのパッチ

はい、9-パッチ画像が拡大されます...異なる画面サイズの間で拡大しますそれが彼らの存在です。しかし、すべての画面濃度に9パッチの画像を使用する必要がある場合は、実際に画像に依存します。例えば、ボタンのように9パッチ画像がより一般的に使用される。あなたはあなたのボタンの大きさにかかわらず(9パッチ画像が適切に作成されている限り)あなたのアプリに異なるサイズのボタンを持つことができ、9パッチの画像がそれらを扱うのに役立ちます。

しかし、あなたのボタンデザインには、hdpiバージョンの本当に丸いコーナーがいくつかあるとします。コーナーを邪魔することなく9パッチの画像を作成しますが、ldpiバージョンで見ると、その低解像度ではコーナーが大きすぎることがわかります。このような状況では、コーナーが少なく、その解像度で見栄えの良い9パッチの画像が必要になります。

最終的な答えは、本当にあなたのイメージに依存しています。すべての濃度で良好に見える9パッチ画像を作成することができれば、すべての濃度を処理するために1つの画像しか必要としないので、それを使用してください。しかし、コーナーやグラデーションなどのために見栄えが悪い場合は、画面密度ごとに9パッチの画像が1つ必要です。

うまくいけばうまくいきます。

+0

イメージが通常のpngであり、9pngのpngでない場合、イメージは拡大縮小されますか、またはスケール機能の実際のハード要件は9patchですか? – Vass

+1

@Vass Imageは、ビューのサイズがイメージのサイズよりも大きい場合にスケーリングされます。しかし、9個のパッチイメージがリッピングから保存するために使用されます。 – AB1209

+0

@ AB1209、 "ripingからの救済"の意味を教えてください。 – Vass

2

ありがとう:nine patch

NinePatchDrawableグラフィックはAndroidが自動的にあなたのようにそれを置いているのViewの内容に適合するようにサイズが変更されます伸縮性のビットマップイメージであり、バックグラウンド。 NinePatchの使用例は、標準のAndroidボタンで使用される背景です。さまざまな長さの文字列に対応するためには、ボタンを伸ばす必要があります。 NinePatch Drawableは、1ピクセル幅の余分な枠線を含む標準のPNG画像です。拡張子.9.pngで保存し、プロジェクトのres/drawable /ディレクトリに保存する必要があります。

答えはありません。私は最近ので、私はピッチと、すでに述べたことで拡大してみましょう同じ状況で自分自身を発見し

+4

こと全く正しいわけではありません。はい、ninepatchの縮尺は変わりませんが、拡大縮小しない部分も正しいサイズにする必要があるため、ldpi/mdpi/hdpiイメージを提供する必要があります。 –

+0

しかし、異なる2密度についてはどうですか?高密度の9ページの画像も作成する必要がありますか? – AB1209

+4

@ AB1209あなたはNinePatchの部品のスケールがうまくいかないことがわかっていればいいです。 – rf43

0

短い答えはYESです。この チェック:彼らは、各デバイス上で適切な 物理的なサイズでレンダリングするようにデフォルトで

は、Androidのは、あなたの描画可能ビットマップ(.png.jpg、および.gifファイル)とナインパッチのドロワブル(.9.pngファイル)をスケーリングします。たとえば、アプリケーションでベースライン、中画面密度(mdpi)のビットマップ描画を にのみ提供している場合、システムは高密度の スクリーン上にある場合にスケーリングし、低密度スクリーンではスケーリングします。このスケーリングは、 ビットマップにアーチファクトを引き起こす可能性があります。あなたのビットマップが最もよく見えるようにするには、さまざまな画面密度の異なる解像度の に別のバージョンを含める必要があります。

from Android Developer Official Doc

関連する問題