大規模な画像から自動的に xxhdpi、xhdpi、hdpi、mdpi、および ldpi ドローアブルを作成する方法はありますか? たとえば、512x512 の画像があり、Android でサポートされているさまざまな画面解像度用に、この画像のさまざまなバージョンを適切なフォルダーに入れたいとします。
17 に答える
オプション #1:-xxhdpi
ドローアブルを出荷して、実行時に Android にダウンサンプリングさせるだけです (欠点:-xxhdpi
既知のかなり最近のデバイスでのみ動作します)。
オプション #2: Android Asset Studioを使用して、それらをダウンサンプリングします。
オプション #3: ssantos の回答に従って、グラフィック エディター内でプロセスを自動化します。
オプション #4: ImageMagick のようなものを使用して、自分で解決策をスクリプト化します。
オプション #5:イメージ ベイカーを使用する
CommonsWare の回答に従って、ImageMagick (変換) を使用する bash スクリプト:
Kishan Vaghelaのおかげで、フォルダーの作成と引数のチェックが追加されました
#!/bin/sh
#---------------------------------------------------------------
# Given an xxhdpi image or an App Icon (launcher), this script
# creates different dpis resources and the necessary folders
# if they don't exist
#
# Place this script, as well as the source image, inside res
# folder and execute it passing the image filename as argument
#
# Example:
# ./drawables_dpis_creation.sh ic_launcher.png
# OR
# ./drawables_dpis_creation.sh my_cool_xxhdpi_image.png
#
# Copyright (c) 2016 Ricardo Romao.
# This free software comes with ABSOLUTELY NO WARRANTY and
# is distributed under GNU GPL v3 license.
#---------------------------------------------------------------
if [ $# -eq 0 ]; then
echo "No arguments supplied"
else if [ -f "$1" ]; then
echo " Creating different dimensions (dips) of "$1" ..."
mkdir -p drawable-xxxhdpi
mkdir -p drawable-xxhdpi
mkdir -p drawable-xhdpi
mkdir -p drawable-hdpi
mkdir -p drawable-mdpi
if [ $1 = "ic_launcher.png" ]; then
echo " App icon detected"
convert ic_launcher.png -resize 144x144 drawable-xxhdpi/ic_launcher.png
convert ic_launcher.png -resize 96x96 drawable-xhdpi/ic_launcher.png
convert ic_launcher.png -resize 72x72 drawable-hdpi/ic_launcher.png
convert ic_launcher.png -resize 48x48 drawable-mdpi/ic_launcher.png
rm -i ic_launcher.png
else
convert $1 -resize 75% drawable-xxhdpi/$1
convert $1 -resize 50% drawable-xhdpi/$1
convert $1 -resize 38% drawable-hdpi/$1
convert $1 -resize 25% drawable-mdpi/$1
mv $1 drawable-xxxhdpi/$1
fi
echo " Done"
else
echo "$1 not found."
fi
fi
Launcher、ActionBar、Tab アイコン、通知アイコンなどの標準アイコンには、Eclipse で Android Icon Set というツールを使用しています。File --> New --> Other.. --> Android --> Android Icon Set から起動できます。最良の部分は、コンピューターから任意のファイルを選択できることです。標準サイズのすべての画像がプロジェクト ディレクトリに自動的に配置されます。
- https://romannurik.github.io/AndroidAssetStudio/index.htmlを使用してください。画像からアイコンのセットを作成でき、後でzipファイルをダウンロードできます。
- または、 https://github.com/redwarp/9-Patch-Resizer/releasesで Windows アプリケーションをダウンロードし(インストールする必要はありません)、アイコンを開きます。
- また、プラグインを使用することもできます
Android Drawable Importer
。上記の回答を参照してください。放置されているので、フォークを取り付けます。Android Drawable Importer が AS 3.5 以降の選択を無視する理由またはhttps://github.com/Vincent-Loi/android-drawable-importer-intellij-pluginを参照してください。 - https://appicon.co/#image-sets .
100% 自動ではありませんが、Photoshop アクションを使用することで多くの時間を節約できます。
たとえば、指定されたアセットに対して、とxhdpi
のタスクを作成します。これは、それぞれ 66.66% と 44.44% にスケーリングされます。次に、フォルダーのすべての画像に対してアクションを実行します。hdpi
mdpi
xhdpi
512x512 画像の場合、xxhpi、xhdpi、hdpi、および mdpi を達成するために画像をスケーリングする必要があるパーセンテージを計算するだけです。
PSD ファイルから ic_launcher png ファイルを作成するための Photoshop スクリプトを作成しました。ic_launcher_exporterを確認してください。
使用するには、ダウンロードして、Photoshop からスクリプトを使用するだけです。
そして、出力ファイルを生成する場所を構成します。
Vector Asset Studio をScalable Vector Graphics (SVG)と組み合わせて使用することもできます。残りは Android Studio が処理します。公式ドキュメントが言うように:
Vector Asset Studio は、マテリアル アイコンを追加し、スケーラブル ベクター グラフィック (SVG) ファイルをドローアブル リソースとしてアプリ プロジェクトにインポートするのに役立ちます。ラスター イメージと比較して、ベクター型ドローアブルはアプリのサイズを縮小し、画質を損なうことなくサイズを変更できます。1 つのベクター型ドローアブルをすべての Android デバイスに表示できるため、さまざまな画面サイズと解像度を持つさまざまな Android デバイスをより簡単にサポートできます。
これが今後のアプローチだと思います。