18

私はまったく新しいもので、簡単なアプリケーションの作成Androidに使用しています。Eclipse ADTこのアプリケーションには、ユーザーのクリックに基づいて背景画像を変更するボタンがあります。

私のプロジェクトには、画像用の 4 つのフォルダーがあることに気付きました: drawable-hdpi, drawable-ldpi, drawable-mdpi, and drawable-xhdpi.

また、現在そこにある画像 (ランチャー アイコン) のサイズがすべて異なることにも気付きました。

これは、画像編集ソフトウェアを使用して、各画像の解像度ごとに 1 つの画像を作成する必要があるということですか? または(うまくいけば)画像をインポートして、これを自動的に行う方法はありますか?

ありがとう!

4

2 に答える 2

44

画像やその他のビジュアル ファイルは、1 つ以上の描画可能なディレクトリに保存されます。ディレクトリが 1 つだけの場合、Android は必要に応じてイメージをスケーリングします。複数のディレクトリが使用されている場合、Android は適切なサイズの画像を選択します。

  • drawable-ldpi - 低密度画像
  • drawable-mdpi - 中密度画像
  • drawable-hdpi - 高密度画像
  • drawable-xhdpi - 超高密度画像 (つまり、網膜のようなディスプレイ)
  • drawable-xxhdpi - 超高密度画像 (Nexus 10、Samsung Galaxy S4、HTC One、Sony Xperia Z などのデバイス)
  • drawable-xxxhdpi - トリプル超高密度イメージ ( Nexus 6 および 9 )

(補足: XML ファイルは、ドローアブルとして記述および保存することもできます。これらの種類のファイルは、ビューの状態、またはグラデーション、境界線などの他の視覚設定に基づいて、複数の画像をいつ使用するかを制御できます。)

それで、あなたは何をすべきですか?

最良の結果を得るには ( Android 開発者ドキュメントから):

これらの画像を生成するには、ベクター形式の生のリソースから始めて、次のサイズ スケールを使用して密度ごとに画像を生成する必要があります。

  • xxxhdpi: 4.0
  • xxhdpi: 3.0
  • xhdpi: 2.0
  • hdpi: 1.5
  • tvdpi: 1.33 (テレビのみ)
  • mdpi: 1.0 (ベースライン)
  • ldpi: 0.75

つまり、xhdpi デバイス用に 200x200 のイメージを生成する場合、同じリソースを hdpi 用に 150x150、tvdpi 用に 133x133、mdpi 用に 100x100、最後に ldpi デバイス用に 75x75 のイメージで生成する必要があります。

画像を 1 つだけ使用し、Android でスケーリングできるようにする場合は、次のようにします。

Android デベロッパー サイトのダッシュボードによると、現在 Android デバイスの 75% 以上が hdpi 以上の解像度を備えています。たとえば、hdpi で 1 つのイメージを作成すると、約 3 分の 1 のデバイスで完璧に表示され、一部のデバイスでは拡大、約 25% のデバイスで縮小されます。一般的には、スケールアップするよりもスケールダウンしたほうがよいと思います。

于 2013-02-25T01:52:07.263 に答える
3

これは、画像編集ソフトウェアを使用して、各画像の解像度ごとに 1 つの画像を作成する必要があるということですか? または(うまくいけば)画像をインポートして、これを自動的に行う方法はありますか?

画像の高解像度ソース (またはベクター グラフィック形式) が既にある場合は、Android Asset Studioを使用して、独自のソース画像からあらゆる密度 (マイナス xxhdpi) のアイコン/画像を生成できます。デフォルトの Android クリップアートからアイコン/画像を作成することもできます。これは、さまざまなバージョンの Android のテーマにすることができます。これにより、画像編集ツールを使用してサイズを変更して保存する手間が省けます。

于 2013-02-25T02:03:24.013 に答える