Creazione di icone per Android
Il vostro grafico di fiducia vi ha preparato delle bellissime immagini per la vostra applicazione Android ? Avete creato voi delle immagini che volete trasformare in icone da integrare nella vostra applicazione ? Non volete convertire a mano l'immagine in tutti i formati possibili ?
Eccovi un semplice tool per la creazione di icone per Android, che farà il lavoro al posto vostro!
Prima di tutto una veloce premessa, espressa in termini di prerequisiti:
- dotatevi di un sistema Linux funzionante (o almeno Unix-like)
- installate i tool ImageMagick
Una volta che avete preparato il sistema create in /usr/local/bin (o altro percorso nel quale inserire i vostri script/programmi) il file android_icon.sh e al suo interno incollate il seguente codice:
#!/bin/sh# # Davide Airaghi # Simple "icon creator" for Android development # Image sizes taken from http://iconhandbook.co.uk/reference/chart/android/ # echo "" TYPE="$1" IMAGE="$2" RESNAME="$3" OUTDIR="$4" SIZES="" if [ "$RESNAME" != "" ]; then RESNAME=$( echo $RESNAME | sed -es/\[^a-zA-Z0-9\\_\]/_/g ) fi function usage() { echo "" echo "Usage:" echo "android_icon.sh TYPE ORIGINAL_IMAGE RESOURCE_NAME OUTPUT_DIR" echo "" echo "TYPE can be one of: launcher, actionbar, dialog, tab, contextual, notification" echo "" echo "Example" echo "" echo "android_launger_icon.sh launcher ~/images/my-icon.png my_icon ~/progs/my-app/app/src/main/res" echo "" echo "" } if [ "$TYPE" = "" ]; then echo "Type not given" usage exit 1 fi case $TYPE in launcher) SIZES="mdpi-48 hdpi-72 xhdpi-96 xxhdpi-144 xxxhdpi-192" ;; actionbar) SIZES="mdpi-32 hdpi-48 xhdpi-64 xxhdpi-96 xxxhdpi-128" ;; dialog) SIZES="mdpi-32 hdpi-48 xhdpi-64 xxhdpi-96 xxxhdpi-128" ;; tab) SIZES="mdpi-32 hdpi-48 xhdpi-64 xxhdpi-96 xxxhdpi-128" ;; contextual) SIZES="mdpi-16 hdpi-24 xhdpi-32 xxhdpi-48 xxxhdpi-64" ;; notification) SIZES="mdpi-24 hdpi-36 xhdpi-48 xxhdpi-72 xxxhdpi-96" ;; *) echo "Type not valid" usage exit 2 ;; esac if [ "$IMAGE" = "" ]; then echo "Image file not given" usage exit 3 fi if [ "$RESNAME" = "" ]; then echo "Resource name not given" usage exit 4 fi if [ "$OUTDIR" = "" ]; then echo "Output dir not given" usage exit 5 fi if [ ! -f $IMAGE ]; then echo "Image file not found" exit 6 fi if [ ! -d $OUTDIR ]; then echo "Output dir not found" exit 7 fi IMAGENAME=$(basename $IMAGE) IMAGENAME="${IMAGENAME%.*}" PREFIX="mipmap-" IMG_OK="" IMG_ERR="" for i in $SIZES; do ERR=0 OUTFILE=${OUTDIR}/mipmap-$(echo $i|cut -d- -f1) if [ ! -d ${OUTFILE} ]; then mkdir -p ${OUTFILE} if [ "$?" != "0" ]; then echo "Unable to create ${OUTFILE}" ERR=1 fi fi OUTFILE=${OUTFILE}/${RESNAME}.png if [ "$ERR" = "0" ]; then SIZE=$(echo $i|cut -d- -f2) convert $IMAGE -resize ${SIZE}x${SIZE} -gravity center -extent ${SIZE}x${SIZE} ${OUTFILE} if [ "$?" != "0" ]; then ERR=1 echo "Unable to create ${OUTFILE}" fi else echo "Unable to create ${OUTFILE}" fi if [ "$ERR" = "1" ]; then IMG_ERR="${IMG_ERR}$OUTFILE " else IMG_OK="${IMG_OK}$OUTFILE " fi done echo "" echo "Images created: ${IMG_OK}" echo "Images not created: ${IMG_ERR}" echo "" if [ "${IMG_OK}" = "" ]; then exit 255 else exit 0 fi
Salvate il file e dategli i permessi di esecuzione ( es: chmod +x /usr/local/bin/android_icon.sh ). Una volta fatto tutto questo siete pronti per convertire immagini in icone per Android!
Il tool prevede che, quando invocato, gli vengano passati 4 parametri:
- TYPE (primo parametro) : la tipologia di icone da generare (vedere più sotto)
- ORIGINAL_IMAGE (secondo parametro) : il nome dell'immagine che volete usare per la generazione delle icone
- RESOURCE_NAME (terzo parametro) : il nome da dare alla risorsa all'interno dell'ambiente di sviluppo. fate attenzione che il tool sovrascriverà automaticamente eventuali risorse già presenti con lo stesso nome!
- OUTPUT_DIR (quarto parametro) : la directory all'interno della quale andare a salvare le icone generate. indicate la directory in cui sono presenti le la varie risorse dell'app che state sviluppando (in generale è la directory app/src/main/res all'interno del vostro progetto)
Al momento le tipologie di icone supportate sono le seguenti:
- launcher : sono le icone che vengono usate nelle schermate con l'elenco delle applicazioni e/o sulla schermata principale.
- actionbar: sono le icone che vengono usate nelle "barre superiori" delle applicazioni
- dialog: sono le icone che vengono usate nei box di avviso in sovraimpressione
- tab: sono le icone che vengono usate negli elementi delle barre di navigazione basate su schede
- contextual: sono le generiche icone associate alle azioni dipendenti dal contesto
- notification: sono le icone che vengono usate quando si visualizzano le notifiche