繁体   English   中英

你用什么来创建可绘制的资源? (最佳实践)

[英]What do you use to create drawable resources? (Best practice)

我有许多PNG图像,我使用我写的bash脚本转换为不同的分辨率。

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

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

对于某些可绘制资源,您可能希望使用9个补丁图像。 例如:如果您正在为按钮设置自定义背景。 此链接简要说明了9个补丁图像是什么以及如何创建它们。 简单的9patch图像指南

我们对大多数图标使用svg,并使用脚本导出到不同的分辨率:


#!/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!

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM