【Android/ShellScript】material-design-iconsからmipmapへコピーするスクリプト
Material iconsのアイコンを使うにあたり、 Androidのプロジェクトのmipmapにコピーをする必要がありますが、 種類やサイズがあって手動では少々面倒です。
アイコンのファイル名には規則があるため、シェルスクリプトを使うと便利です。
material-design-icons/[type]/*/ic_[name]_[color]_[dp].png
例えば、"hdpi"の"Action"の"3d rotation"のアイコンの"white", “24dp"にする場合、
material-design-icons/action/drawable-hdpi/ic_3d_rotation_white_24dp.png
となります。
これをもとに、スクリプトを使用してdrawable-を一通りmipmap-へコピーする場合、
type="action" for name in {"delete","done"}; do copy $name $type $size white 24 done
のように指定します。
colorやdpの指定は以下から選びます。
- color
- black
- white
- dp
- 18dp
- 24dp
- 36dp
- 48dp
スクリプトは以下の通りです。
INPUT_DIR=${1} OUTPUT_DIR=${2} if [ $# -ne 2 ]; then echo "usage: ${0} [input directory path] [output directory path]" echo "ex) ${0} path/to/material-design-icons path/to/app/src/main/res" exit 1 fi function copy(){ #name, type, size, color, dp cp ${INPUT_DIR}/${2}/drawable-${3}/ic_${1}_${4}_${5}dp.png ${OUTPUT_DIR}/mipmap-${3}/ic_${1}_${4}.png } for size in {hdpi,mdpi,xhdpi,xxhdpi,xxxhdpi}; do # type="action" # for name in {"delete","done"}; do # copy $name $type $size white 24 # done # type="content" # for name in "add"; do # copy $name $type $size white 24 # done done
コメント(#)の部分にコピーしたいアイコンを羅列していき、
./script.sh path/to/material-design-icons path/to/app/src/main/res
で実行するとコピーできます。
なお、mipmap側のファイル名にdpを省いています。必要であれば適宜書き換えてください。