Skip to content

Navigation Menu

Sign in
Appearance settings

Search code, repositories, users, issues, pull requests...

Provide feedback

We read every piece of feedback, and take your input very seriously.

Saved searches

Use saved searches to filter your results more quickly

Appearance settings
This repository was archived by the owner on Jan 1, 2021. It is now read-only.

zhanghai/AndroidSVGScripts

Open more actions menu

Folders and files

NameName
Last commit message
Last commit date

Latest commit

 

History

6 Commits
6 Commits
 
 
 
 
 
 
 
 

Repository files navigation

Android SVG Scripts

Bash scripts to automate and extend the process of using SVG as Android image asset.

This project is also used by zhanghai/MaterialColdStart.

Dependencies

  • inkscape: For PNG genration
  • gcalccmd (shsvgdpi.sh): For (friendly) mathematical calculation.

svgdpi.sh

Usage: svgdpi.sh SVG_FILE [DIR_PREFIX [DIR_SUFFIX]]

This script can automatically generate PNG asset of different Dips from SVG arranged properly for direct usage in Android application.

For instance:

./svgdpi.sh path/to/your/file.avg

Will output the following files:

drawable-mdpi/file.png
drawable-hdpi/file.png
drawable-xhdpi/file.png
drawable-xxhdpi/file.png
drawable-xxxhdpi/file.png

You can also add prefix and suffix to the drawable directory name with command line arguments. See the script source for more detail.

shsvgdpi.sh

Usage: shsvgdpi.sh SHSVG_FILE [DIR_PREFIX [DIR_SUFFIX]]

This script implemented a powerful new file format called ShellSVG (.shsvg), which allows you to embed any shell command/parameter substitution inside your SVG file.

dp (Device-independent Pixel) is supported as an exported function dp(), and mathematical expression is supported as an exported function calc(). You need to wrap dp() inside a calc() if it is used.

This makes drawing Nine-patch bitmaps where the surrounding lines are always 1px while the content must be drawn in dp easy.

What's more, you can now use parameters inside your SVG, a dimension, a color, a filter, everything is OK. Just do it as in shell, for instance ${SOME_PARAMETER}. Parameter definitions can be written in a .conf file which will be source-ed before generation of a standard SVG file, which means this file can have all the shell semantics apart from regular key-value pair, such as source-ing another .conf.

This script has taken rounding on HDPI (with scaling factor 1.5) into account, so that nine-patch bitmaps won't have an anti-aliased border. It is recommended that you call dp() for every single dp dimension separately to avoid accumulated rounding inconsistency.

The usage of this script is just like svgdpi.sh.

For a detailed example, see the sample/ directory.

License

Copyright (c) 2015 Zhang Hai <Dreaming.in.Code.ZH@Gmail.com>

This program is free software: you can redistribute it and/or modify
it under the terms of the GNU General Public License as published by
the Free Software Foundation, either version 3 of the License, or
(at your option) any later version.

This program is distributed in the hope that it will be useful, but
WITHOUT ANY WARRANTY; without even the implied warranty of
MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the GNU
General Public License for more details.

You should have received a copy of the GNU General Public License
along with this program.  If not, see
<http://www.gnu.org/licenses/>.

About

Bash scripts to automate and extend the process of using SVG as Android image asset

Resources

Stars

Watchers

Forks

Releases

No releases published

Packages

 
 
 

Contributors

Languages

Morty Proxy This is a proxified and sanitized view of the page, visit original site.