aboutsummaryrefslogtreecommitdiffstats
path: root/assetstudio/src
diff options
context:
space:
mode:
authorTor Norbye <tnorbye@google.com>2011-07-28 19:33:36 -0700
committerTor Norbye <tnorbye@google.com>2011-08-02 14:23:22 -0700
commit0b699d130945ee92bf6deca1d5e286d1b9d4c567 (patch)
tree71a7552aea5e25e6661f7d23ba12ce0d10951b08 /assetstudio/src
parent0f7b11225f91377c7b036e67ef29b8895fe40790 (diff)
downloadsdk-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.java80
-rw-r--r--assetstudio/src/images/clipart/big/android.pngbin0 -> 4156 bytes
-rw-r--r--assetstudio/src/images/clipart/small/android.pngbin0 -> 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
new file mode 100644
index 0000000..d966fae
--- /dev/null
+++ b/assetstudio/src/images/clipart/big/android.png
Binary files differ
diff --git a/assetstudio/src/images/clipart/small/android.png b/assetstudio/src/images/clipart/small/android.png
new file mode 100644
index 0000000..acbfafd
--- /dev/null
+++ b/assetstudio/src/images/clipart/small/android.png
Binary files differ