diff options
author | Tor Norbye <tnorbye@google.com> | 2011-07-28 19:33:36 -0700 |
---|---|---|
committer | Tor Norbye <tnorbye@google.com> | 2011-08-02 14:23:22 -0700 |
commit | 0b699d130945ee92bf6deca1d5e286d1b9d4c567 (patch) | |
tree | 71a7552aea5e25e6661f7d23ba12ce0d10951b08 /assetstudio/src | |
parent | 0f7b11225f91377c7b036e67ef29b8895fe40790 (diff) | |
download | sdk-0b699d130945ee92bf6deca1d5e286d1b9d4c567.zip sdk-0b699d130945ee92bf6deca1d5e286d1b9d4c567.tar.gz sdk-0b699d130945ee92bf6deca1d5e286d1b9d4c567.tar.bz2 |
Add clipart support to the asset set wizard
This changeset adds clipart support to the asset set wizard. There is
only one placeholder clipart image now but the code reads the
available images from the jar dynamically.
This changeset also adds "file exists - replace yes, no, always,
never" handling for the generated icons.
Change-Id: I38d0c40957eff4a9e844e29d61f2c57493bd10f0
Diffstat (limited to 'assetstudio/src')
-rw-r--r-- | assetstudio/src/com/android/assetstudiolib/GraphicGenerator.java | 80 | ||||
-rw-r--r-- | assetstudio/src/images/clipart/big/android.png | bin | 0 -> 4156 bytes | |||
-rw-r--r-- | assetstudio/src/images/clipart/small/android.png | bin | 0 -> 802 bytes |
3 files changed, 80 insertions, 0 deletions
diff --git a/assetstudio/src/com/android/assetstudiolib/GraphicGenerator.java b/assetstudio/src/com/android/assetstudiolib/GraphicGenerator.java index e53f0ab..902b21d 100644 --- a/assetstudio/src/com/android/assetstudiolib/GraphicGenerator.java +++ b/assetstudio/src/com/android/assetstudiolib/GraphicGenerator.java @@ -19,8 +19,19 @@ package com.android.assetstudiolib; import com.android.resources.Density; import java.awt.image.BufferedImage; +import java.io.File; import java.io.IOException; import java.io.InputStream; +import java.net.URISyntaxException; +import java.net.URL; +import java.security.ProtectionDomain; +import java.util.ArrayList; +import java.util.Enumeration; +import java.util.Iterator; +import java.util.List; +import java.util.jar.JarFile; +import java.util.zip.ZipEntry; +import java.util.zip.ZipFile; import javax.imageio.ImageIO; @@ -49,4 +60,73 @@ public class GraphicGenerator { InputStream is = GraphicGenerator.class.getResourceAsStream(relativePath); return ImageIO.read(is); } + + /** + * Returns the icon (32x32) for a given clip art image. + * + * @param name the name of the image to be loaded (which can be looked up via + * {@link #getClipartNames()}) + * @return the icon image + * @throws IOException if the image cannot be loaded + */ + public static BufferedImage getClipartIcon(String name) throws IOException { + InputStream is = GraphicGenerator.class.getResourceAsStream( + "/images/clipart/small/" + name); + return ImageIO.read(is); + } + + /** + * Returns the full size clip art image for a given image name. + * + * @param name the name of the image to be loaded (which can be looked up via + * {@link #getClipartNames()}) + * @return the clip art image + * @throws IOException if the image cannot be loaded + */ + public static BufferedImage getClipartImage(String name) throws IOException { + InputStream is = GraphicGenerator.class.getResourceAsStream( + "/images/clipart/big/" + name); + return ImageIO.read(is); + } + + /** + * Returns the names of available clip art images which can be obtained by passing the + * name to {@link #getClipartIcon(String)} or + * {@link GraphicGenerator#getClipartImage(String)} + * + * @return an iterator for the available image names + */ + public static Iterator<String> getClipartNames() { + List<String> names = new ArrayList<String>(80); + try { + String pathPrefix = "images/clipart/big/"; //$NON-NLS-1$ + ProtectionDomain protectionDomain = GraphicGenerator.class.getProtectionDomain(); + URL url = protectionDomain.getCodeSource().getLocation(); + File file; + try { + file = new File(url.toURI()); + } catch (URISyntaxException e) { + file = new File(url.getPath()); + } + final ZipFile zipFile = new JarFile(file); + Enumeration<? extends ZipEntry> enumeration = zipFile.entries(); + while (enumeration.hasMoreElements()) { + ZipEntry zipEntry = enumeration.nextElement(); + String name = zipEntry.getName(); + if (!name.startsWith(pathPrefix) || !name.endsWith(".png")) { //$NON-NLS-1$ + continue; + } + + int lastSlash = name.lastIndexOf('/'); + if (lastSlash != -1) { + name = name.substring(lastSlash + 1); + } + names.add(name); + } + } catch (final Exception e) { + e.printStackTrace(); + } + + return names.iterator(); + } } diff --git a/assetstudio/src/images/clipart/big/android.png b/assetstudio/src/images/clipart/big/android.png Binary files differnew file mode 100644 index 0000000..d966fae --- /dev/null +++ b/assetstudio/src/images/clipart/big/android.png diff --git a/assetstudio/src/images/clipart/small/android.png b/assetstudio/src/images/clipart/small/android.png Binary files differnew file mode 100644 index 0000000..acbfafd --- /dev/null +++ b/assetstudio/src/images/clipart/small/android.png |