私はAndroid
を初めて使い、Eclipse ADT
を使用して簡単なアプリケーションを作成しています。このアプリケーションには、ユーザーのクリックに基づいて背景画像を変更するボタンがあります。
プロジェクトには、drawable-hdpi, drawable-ldpi, drawable-mdpi, and drawable-xhdpi
という画像用の4つのフォルダーがあることに気付きました。
また、現在そこにある画像(ランチャーアイコン)がすべて異なるサイズであることに気付きました。
これは、画像編集ソフトウェアを使用して、各画像の解像度ごとに1つの画像を作成する必要があるということですか?または、(願わくば)画像をインポートし、これを自動的に行う方法がありますか?
ありがとう!
画像およびその他の視覚ファイルは、1つ以上の描画可能なディレクトリに保存されます。 1つのディレクトリにのみある場合、Androidは必要に応じて画像をスケーリングします。複数のディレクトリが使用される場合、Androidは適切なサイズの画像を選択します。
(補足:XMLファイルは、ドローアブルとして記述および保存することもできます。これらの種類のファイルは、ビューの状態、またはグラデーション、境界線などの他の視覚設定に基づいて、複数の画像をいつ使用するかを制御できます。)
それで、あなたは何をすべきか?
最良の結果を得るために( Android developer docs から):
これらの画像を生成するには、ベクトル形式の生リソースから開始し、次のサイズスケールを使用して各密度の画像を生成する必要があります。
つまり、xhdpiデバイス用に200x200イメージを生成する場合、hdpi用に150x150、tvdpi用に133x133、mdpi用に100x100、ldpiデバイス用に75x75イメージで同じリソースを生成する必要があります。
1つの画像を使用したい場合は、Android scale for you:
Androidデバイスの75%以上は、Android開発者サイトの Dashboardによると、hdpi以上の解像度になりました。 。たとえば、hdpiで1つのイメージを作成すると、約3分の1のデバイスで完璧に表示され、一部のデバイスでスケールアップし、約25%のデバイスでスケールダウンします。 dスケールダウンよりもスケールダウンの方が適しています。
これは、画像編集ソフトウェアを使用して、各画像の解像度ごとに1つの画像を作成する必要があるということですか?または、(願わくば)画像をインポートし、これを自動的に行う方法がありますか?
画像の高解像度ソース(またはベクターグラフィック形式)が既にある場合は、 Android Asset Studio を使用して、ごとに独自のソース画像からアイコン/画像を生成できます密度(マイナスxxhdpi)。デフォルトのAndroidクリップアート、Androidのさまざまなバージョンをテーマにしたクリップアートからアイコン/画像を作成することもできます。これにより、画像編集ツールでサイズ変更や保存の手間が省けます。