2012-07-20 65 views
1

我有一些PNG图像,我使用我编写的bash脚本转换为不同的分辨率。你用什么来创建drawable资源? (最佳做法)

输入是一个图像,输出是一系列匹配分辨率的缩放图像:drawable-xhdpi,drawable-hdpi,drawable-mdpi,drawable-ldpi。

是否有缩放图标和PNG图像的更好方法?你用什么?我应该使用SVG图像吗?

回答

1

对于您的一些可绘制资源,您可能需要使用9贴片图像。例如:如果你正在设置一个按钮的自定义背景。这个链接简要地解释了9个补丁映像是什么以及如何创建它们。 Simple 9patch images guide

1

有来自谷歌

1

我们使用SVG我们大多数图标和出口与脚本不同的分辨率Android Asset Studio


#!/bin/bash 
# This script export a .svg to different android resolution classes. 
# Christian Beier, shoutrLabs 
# 

# Export individual svg to png with inkscape 
# $1 = File 
# $2 = Size 
# $3 = destination dir 
function exportFile { 
    FILE=$1 
    SIZE=$2 
    DESTDIR=$3 

    echo 
    echo '################### EXPORTING '$FILE $SIZE $DESTDIR' ...' 

    if [ -e $FILE ]; then 

     EXPORTFILE=`basename $FILE .svg` 
     EXPORTFILE=$EXPORTFILE".png" 

     # If format is WIDTHxHEIGHT do this, else assume 1:1 ratio 
     if [ `echo $SIZE | grep -E '^[0-9]+x[0-9]+$'` ]; then 
      SIZEWIDTH=`echo $SIZE | sed 's/x[0-9]*//'` 
      SIZEHEIGHT=`echo $SIZE | sed 's/[0-9]*x//'` 
     else 
      SIZEWIDTH=$SIZE 
      SIZEHEIGHT=$SIZE 
     fi 

     mkdir -p $DESTDIR 
     inkscape --without-gui --file=$FILE --export-area-drawing --export-png="$DESTDIR/$EXPORTFILE" -w=$SIZEWIDTH -h=$SIZEHEIGHT 

    else 
     echo "File does not exist." 
    fi 

} 


# go! 

exportFile $1 36 "drawable-ldpi" 
exportFile $1 48 "drawable-mdpi" 
exportFile $1 72 "drawable-hdpi" 
exportFile $1 96 "drawable-xhdpi" 
exportFile $1 144 "drawable-xxhdpi" 

echo DONE baby! 
相关问题