Loading graphics/java/android/graphics/drawable/VectorDrawable.java +22 −42 Original line number Diff line number Diff line Loading @@ -46,7 +46,7 @@ import java.util.HashMap; * This lets you create a drawable based on an XML vector graphic It can be * defined in an XML file with the <code><vector></code> element. * <p/> * The vector drawable has 6 elements: * The vector drawable has the following elements: * <p/> * <dl> * <dt><code><vector></code></dt> Loading @@ -59,15 +59,15 @@ import java.util.HashMap; * <dd>Used to defined the size of the virtual canvas the paths are drawn on. * The size is defined using the attributes <code>android:viewportHeight</code> * <code>android:viewportWidth</code></dd> * <dt><code><group></code></dt> * <dd>Defines the static 2D image.</dd> * <dt><code><path></code></dt> * <dd>Defines paths to be drawn. The path elements must be within a group * <dd>Defines paths to be drawn. Multiple paths can be defined in one xml file. * The paths are drawn in the order of their definition order. * <dl> * <dt><code>android:name</code> * <dd>Defines the name of the path.</dd></dt> * <dt><code>android:pathData</code> * <dd>Defines path string.</dd></dt> * <dd>Defines path string. This is using exactly same format as "d" attribute * in the SVG's path data</dd></dt> * <dt><code>android:fill</code> * <dd>Defines the color to fill the path (none if not present).</dd></dt> * <dt><code>android:stroke</code> Loading Loading @@ -108,7 +108,6 @@ public class VectorDrawable extends Drawable { private static final String SHAPE_SIZE = "size"; private static final String SHAPE_VIEWPORT = "viewport"; private static final String SHAPE_GROUP = "group"; private static final String SHAPE_PATH = "path"; private static final String SHAPE_VECTOR = "vector"; Loading Loading @@ -266,10 +265,9 @@ public class VectorDrawable extends Drawable { boolean noSizeTag = true; boolean noViewportTag = true; boolean noGroupTag = true; boolean noPathTag = true; VGroup currentGroup = null; VGroup currentGroup = new VGroup(); int eventType = parser.getEventType(); while (eventType != XmlPullParser.END_DOCUMENT) { Loading @@ -286,10 +284,6 @@ public class VectorDrawable extends Drawable { } else if (SHAPE_VIEWPORT.equals(tagName)) { pathRenderer.parseViewport(res, attrs); noViewportTag = false; } else if (SHAPE_GROUP.equals(tagName)) { currentGroup = new VGroup(); pathRenderer.mGroupList.add(currentGroup); noGroupTag = false; } else if (SHAPE_VECTOR.equals(tagName)) { final TypedArray a = res.obtainAttributes(attrs, R.styleable.VectorDrawable); Loading @@ -310,7 +304,7 @@ public class VectorDrawable extends Drawable { eventType = parser.next(); } if (noSizeTag || noViewportTag || noGroupTag || noPathTag) { if (noSizeTag || noViewportTag || noPathTag) { final StringBuffer tag = new StringBuffer(); if (noSizeTag) { Loading @@ -324,13 +318,6 @@ public class VectorDrawable extends Drawable { tag.append(SHAPE_SIZE); } if (noGroupTag) { if (tag.length() > 0) { tag.append(" & "); } tag.append(SHAPE_GROUP); } if (noPathTag) { if (tag.length() > 0) { tag.append(" or "); Loading @@ -341,6 +328,7 @@ public class VectorDrawable extends Drawable { throw new XmlPullParserException("no " + tag + " defined"); } pathRenderer.mCurrentGroup = currentGroup; // post parse cleanup pathRenderer.parseFinish(); return pathRenderer; Loading Loading @@ -394,7 +382,7 @@ public class VectorDrawable extends Drawable { private Paint mFillPaint; private PathMeasure mPathMeasure; final ArrayList<VGroup> mGroupList = new ArrayList<VGroup>(); private VGroup mCurrentGroup = new VGroup(); float mBaseWidth = 1; float mBaseHeight = 1; Loading @@ -405,7 +393,7 @@ public class VectorDrawable extends Drawable { } public VPathRenderer(VPathRenderer copy) { mGroupList.addAll(copy.mGroupList); mCurrentGroup = copy.mCurrentGroup; if (copy.mCurrentPaths != null) { mCurrentPaths = new VPath[copy.mCurrentPaths.length]; for (int i = 0; i < mCurrentPaths.length; i++) { Loading @@ -420,24 +408,18 @@ public class VectorDrawable extends Drawable { } public boolean canApplyTheme() { final ArrayList<VGroup> groups = mGroupList; for (int i = groups.size() - 1; i >= 0; i--) { final ArrayList<VPath> paths = groups.get(i).mVGList; final ArrayList<VPath> paths = mCurrentGroup.mVGList; for (int j = paths.size() - 1; j >= 0; j--) { final VPath path = paths.get(j); if (path.canApplyTheme()) { return true; } } } return false; } public void applyTheme(Theme t) { final ArrayList<VGroup> groups = mGroupList; for (int i = groups.size() - 1; i >= 0; i--) { final ArrayList<VPath> paths = groups.get(i).mVGList; final ArrayList<VPath> paths = mCurrentGroup.mVGList; for (int j = paths.size() - 1; j >= 0; j--) { final VPath path = paths.get(j); if (path.canApplyTheme()) { Loading @@ -446,8 +428,6 @@ public class VectorDrawable extends Drawable { } } } public void draw(Canvas canvas, int w, int h) { if (mCurrentPaths == null) { Log.e(LOGTAG,"mCurrentPaths == null"); Loading Loading @@ -537,11 +517,11 @@ public class VectorDrawable extends Drawable { } /** * Build the "current" path based on the first group * Build the "current" path based on the current group * TODO: improve memory use & performance or move to C++ */ public void parseFinish() { final Collection<VPath> paths = mGroupList.get(0).getPaths(); final Collection<VPath> paths = mCurrentGroup.getPaths(); mCurrentPaths = paths.toArray(new VPath[paths.size()]); for (int i = 0; i < mCurrentPaths.length; i++) { mCurrentPaths[i] = new VPath(mCurrentPaths[i]); Loading tests/VectorDrawableTest/res/drawable/vector_drawable01.xml +9 −10 Original line number Diff line number Diff line Loading @@ -24,13 +24,12 @@ android:viewportHeight="480" android:viewportWidth="480" /> <group> <path android:name="box1" android:pathData="m20,200l100,90l180,-180l-35,-35l-145,145l-60,-60l-40,40z" android:fill="?android:attr/colorControlActivated" android:pathData="m20,200l100,90l180,-180l-35,-35l-145,145l-60,-60l-40,40z" android:stroke="?android:attr/colorControlActivated" android:strokeLineCap="round" android:strokeLineJoin="round" /> </group> </vector> No newline at end of file tests/VectorDrawableTest/res/drawable/vector_drawable02.xml +20 −19 Original line number Diff line number Diff line <!-- Copyright (C) 2014 The Android Open Source Project <!-- Copyright (C) 2014 The Android Open Source Project Licensed under the Apache License, Version 2.0 (the "License"); you may not use this file except in compliance with the License. Loading @@ -15,23 +16,23 @@ <vector xmlns:android="http://schemas.android.com/apk/res/android" > <size android:width="64dp" android:height="64dp"/> android:height="64dp" android:width="64dp" /> <viewport android:viewportWidth="320" android:viewportHeight="320"/> <viewport android:viewportHeight="320" android:viewportWidth="320" /> <group> <path android:name="house" android:pathData="M 130,225 L 130,115 L 130,115 L 70,15 L 10,115 L 10,115 L 10,225 z" android:fill="#ff440000" android:stroke="#FF00FF00" android:strokeWidth="10" android:rotation="180" android:pathData="M 130,225 L 130,115 L 130,115 L 70,15 L 10,115 L 10,115 L 10,225 z" android:pivotX="70" android:pivotY="120" android:trimPathStart=".1" android:trimPathEnd=".9"/> </group> android:rotation="180" android:stroke="#FF00FF00" android:strokeWidth="10" android:trimPathEnd=".9" android:trimPathStart=".1" /> </vector> No newline at end of file tests/VectorDrawableTest/res/drawable/vector_drawable03.xml +32 −37 Original line number Diff line number Diff line <!-- Copyright (C) 2014 The Android Open Source Project <!-- Copyright (C) 2014 The Android Open Source Project Licensed under the Apache License, Version 2.0 (the "License"); you may not use this file except in compliance with the License. Loading @@ -15,50 +16,46 @@ <vector xmlns:android="http://schemas.android.com/apk/res/android" > <size android:width="64dp" android:height="64dp"/> android:height="64dp" android:width="64dp" /> <viewport android:viewportWidth="7.30625" android:viewportHeight="12.25"/> <group> android:viewportHeight="12.25" android:viewportWidth="7.30625" /> <path android:name="clip1" android:clipToPath="true" android:pathData=" M 0, 0 l 7.3, 0 l 0, 0 l -7.3, 0 z" android:clipToPath="true" android:rotation="-30" android:pivotX="3.65" android:pivotY="6.125" /> android:rotation="-30" /> <path android:name="one" android:fill="#ff88ff" android:pathData="M 1.215625,9.5l 1.9375,0.0 0.0,-6.671875 -2.109375,0.421875 0.0,-1.078125 l 2.09375,-0.421875 1.1874998,0.0 0.0,7.75 1.9375,0.0 0.0,1.0 l -5.046875,0.0 0.0,-1.0Z" android:fill="#ff88ff" /> l -5.046875,0.0 0.0,-1.0Z" /> <path android:name="clip2" android:clipToPath="true" android:pathData=" M 0, 0 l 7.3, 0 l 0, 12.25 l -7.3, 0 z" android:clipToPath="true" android:rotation="-30" android:pivotX="3.65" android:pivotY="6.125" /> android:rotation="-30" /> <path android:name="two" android:fill="#ff88ff" android:pathData="M 2.534375,9.6875l 4.140625,0.0 0.0,1.0 -5.5625,0.0 0.0,-1.0q 0.671875,-0.6875 1.828125,-1.859375 q 1.1718752,-1.1875 1.4687502,-1.53125 0.578125,-0.625 0.796875,-1.0625 q 0.234375,-0.453125 0.234375,-0.875 0.0,-0.703125 -0.5,-1.140625 Loading @@ -67,8 +64,6 @@ q 0.625,-0.15625 1.140625,-0.15625 1.3593752,0.0 2.1718752,0.6875 q 0.8125,0.671875 0.8125,1.8125 0.0,0.53125 -0.203125,1.015625 q -0.203125,0.484375 -0.734375,1.140625 -0.15625,0.171875 -0.9375,0.984375 q -0.78125024,0.8125 -2.2187502,2.265625Z" android:fill="#ff88ff" /> </group> q -0.78125024,0.8125 -2.2187502,2.265625Z" /> </vector> No newline at end of file tests/VectorDrawableTest/res/drawable/vector_drawable04.xml +31 −36 Original line number Diff line number Diff line <!-- Copyright (C) 2014 The Android Open Source Project <!-- Copyright (C) 2014 The Android Open Source Project Licensed under the Apache License, Version 2.0 (the "License"); you may not use this file except in compliance with the License. Loading @@ -15,44 +16,40 @@ <vector xmlns:android="http://schemas.android.com/apk/res/android" > <size android:width="64dp" android:height="64dp"/> android:height="64dp" android:width="64dp" /> <viewport android:viewportWidth="7.30625" android:viewportHeight="12.25"/> android:viewportHeight="12.25" android:viewportWidth="7.30625" /> <group> <path android:name="clip1" android:clipToPath="true" android:fill="#112233" android:pathData=" M 3.65, 6.125 m -.001, 0 a .001,.001 0 1,0 .002,0 a .001,.001 0 1,0 -.002,0z" android:clipToPath="true" android:fill="#112233" /> a .001,.001 0 1,0 -.002,0z" /> <path android:name="one" android:fill="#ff88ff" android:pathData="M 1.215625,9.5l 1.9375,0.0 0.0,-6.671875 -2.109375,0.421875 0.0,-1.078125 l 2.09375,-0.421875 1.1874998,0.0 0.0,7.75 1.9375,0.0 0.0,1.0 l -5.046875,0.0 0.0,-1.0Z" android:fill="#ff88ff" /> l -5.046875,0.0 0.0,-1.0Z" /> <path android:name="clip2" android:clipToPath="true" android:fill="#112233" android:pathData=" M 3.65, 6.125 m -6, 0 a 6,6 0 1,0 12,0 a 6,6 0 1,0 -12,0z" android:clipToPath="true" android:fill="#112233" /> a 6,6 0 1,0 -12,0z" /> <path android:name="two" android:fill="#ff88ff" android:pathData="M 2.534375,9.6875l 4.140625,0.0 0.0,1.0 -5.5625,0.0 0.0,-1.0q 0.671875,-0.6875 1.828125,-1.859375 q 1.1718752,-1.1875 1.4687502,-1.53125 0.578125,-0.625 0.796875,-1.0625 q 0.234375,-0.453125 0.234375,-0.875 0.0,-0.703125 -0.5,-1.140625 Loading @@ -61,8 +58,6 @@ q 0.625,-0.15625 1.140625,-0.15625 1.3593752,0.0 2.1718752,0.6875 q 0.8125,0.671875 0.8125,1.8125 0.0,0.53125 -0.203125,1.015625 q -0.203125,0.484375 -0.734375,1.140625 -0.15625,0.171875 -0.9375,0.984375 q -0.78125024,0.8125 -2.2187502,2.265625Z" android:fill="#ff88ff" /> </group> q -0.78125024,0.8125 -2.2187502,2.265625Z" /> </vector> No newline at end of file Loading
graphics/java/android/graphics/drawable/VectorDrawable.java +22 −42 Original line number Diff line number Diff line Loading @@ -46,7 +46,7 @@ import java.util.HashMap; * This lets you create a drawable based on an XML vector graphic It can be * defined in an XML file with the <code><vector></code> element. * <p/> * The vector drawable has 6 elements: * The vector drawable has the following elements: * <p/> * <dl> * <dt><code><vector></code></dt> Loading @@ -59,15 +59,15 @@ import java.util.HashMap; * <dd>Used to defined the size of the virtual canvas the paths are drawn on. * The size is defined using the attributes <code>android:viewportHeight</code> * <code>android:viewportWidth</code></dd> * <dt><code><group></code></dt> * <dd>Defines the static 2D image.</dd> * <dt><code><path></code></dt> * <dd>Defines paths to be drawn. The path elements must be within a group * <dd>Defines paths to be drawn. Multiple paths can be defined in one xml file. * The paths are drawn in the order of their definition order. * <dl> * <dt><code>android:name</code> * <dd>Defines the name of the path.</dd></dt> * <dt><code>android:pathData</code> * <dd>Defines path string.</dd></dt> * <dd>Defines path string. This is using exactly same format as "d" attribute * in the SVG's path data</dd></dt> * <dt><code>android:fill</code> * <dd>Defines the color to fill the path (none if not present).</dd></dt> * <dt><code>android:stroke</code> Loading Loading @@ -108,7 +108,6 @@ public class VectorDrawable extends Drawable { private static final String SHAPE_SIZE = "size"; private static final String SHAPE_VIEWPORT = "viewport"; private static final String SHAPE_GROUP = "group"; private static final String SHAPE_PATH = "path"; private static final String SHAPE_VECTOR = "vector"; Loading Loading @@ -266,10 +265,9 @@ public class VectorDrawable extends Drawable { boolean noSizeTag = true; boolean noViewportTag = true; boolean noGroupTag = true; boolean noPathTag = true; VGroup currentGroup = null; VGroup currentGroup = new VGroup(); int eventType = parser.getEventType(); while (eventType != XmlPullParser.END_DOCUMENT) { Loading @@ -286,10 +284,6 @@ public class VectorDrawable extends Drawable { } else if (SHAPE_VIEWPORT.equals(tagName)) { pathRenderer.parseViewport(res, attrs); noViewportTag = false; } else if (SHAPE_GROUP.equals(tagName)) { currentGroup = new VGroup(); pathRenderer.mGroupList.add(currentGroup); noGroupTag = false; } else if (SHAPE_VECTOR.equals(tagName)) { final TypedArray a = res.obtainAttributes(attrs, R.styleable.VectorDrawable); Loading @@ -310,7 +304,7 @@ public class VectorDrawable extends Drawable { eventType = parser.next(); } if (noSizeTag || noViewportTag || noGroupTag || noPathTag) { if (noSizeTag || noViewportTag || noPathTag) { final StringBuffer tag = new StringBuffer(); if (noSizeTag) { Loading @@ -324,13 +318,6 @@ public class VectorDrawable extends Drawable { tag.append(SHAPE_SIZE); } if (noGroupTag) { if (tag.length() > 0) { tag.append(" & "); } tag.append(SHAPE_GROUP); } if (noPathTag) { if (tag.length() > 0) { tag.append(" or "); Loading @@ -341,6 +328,7 @@ public class VectorDrawable extends Drawable { throw new XmlPullParserException("no " + tag + " defined"); } pathRenderer.mCurrentGroup = currentGroup; // post parse cleanup pathRenderer.parseFinish(); return pathRenderer; Loading Loading @@ -394,7 +382,7 @@ public class VectorDrawable extends Drawable { private Paint mFillPaint; private PathMeasure mPathMeasure; final ArrayList<VGroup> mGroupList = new ArrayList<VGroup>(); private VGroup mCurrentGroup = new VGroup(); float mBaseWidth = 1; float mBaseHeight = 1; Loading @@ -405,7 +393,7 @@ public class VectorDrawable extends Drawable { } public VPathRenderer(VPathRenderer copy) { mGroupList.addAll(copy.mGroupList); mCurrentGroup = copy.mCurrentGroup; if (copy.mCurrentPaths != null) { mCurrentPaths = new VPath[copy.mCurrentPaths.length]; for (int i = 0; i < mCurrentPaths.length; i++) { Loading @@ -420,24 +408,18 @@ public class VectorDrawable extends Drawable { } public boolean canApplyTheme() { final ArrayList<VGroup> groups = mGroupList; for (int i = groups.size() - 1; i >= 0; i--) { final ArrayList<VPath> paths = groups.get(i).mVGList; final ArrayList<VPath> paths = mCurrentGroup.mVGList; for (int j = paths.size() - 1; j >= 0; j--) { final VPath path = paths.get(j); if (path.canApplyTheme()) { return true; } } } return false; } public void applyTheme(Theme t) { final ArrayList<VGroup> groups = mGroupList; for (int i = groups.size() - 1; i >= 0; i--) { final ArrayList<VPath> paths = groups.get(i).mVGList; final ArrayList<VPath> paths = mCurrentGroup.mVGList; for (int j = paths.size() - 1; j >= 0; j--) { final VPath path = paths.get(j); if (path.canApplyTheme()) { Loading @@ -446,8 +428,6 @@ public class VectorDrawable extends Drawable { } } } public void draw(Canvas canvas, int w, int h) { if (mCurrentPaths == null) { Log.e(LOGTAG,"mCurrentPaths == null"); Loading Loading @@ -537,11 +517,11 @@ public class VectorDrawable extends Drawable { } /** * Build the "current" path based on the first group * Build the "current" path based on the current group * TODO: improve memory use & performance or move to C++ */ public void parseFinish() { final Collection<VPath> paths = mGroupList.get(0).getPaths(); final Collection<VPath> paths = mCurrentGroup.getPaths(); mCurrentPaths = paths.toArray(new VPath[paths.size()]); for (int i = 0; i < mCurrentPaths.length; i++) { mCurrentPaths[i] = new VPath(mCurrentPaths[i]); Loading
tests/VectorDrawableTest/res/drawable/vector_drawable01.xml +9 −10 Original line number Diff line number Diff line Loading @@ -24,13 +24,12 @@ android:viewportHeight="480" android:viewportWidth="480" /> <group> <path android:name="box1" android:pathData="m20,200l100,90l180,-180l-35,-35l-145,145l-60,-60l-40,40z" android:fill="?android:attr/colorControlActivated" android:pathData="m20,200l100,90l180,-180l-35,-35l-145,145l-60,-60l-40,40z" android:stroke="?android:attr/colorControlActivated" android:strokeLineCap="round" android:strokeLineJoin="round" /> </group> </vector> No newline at end of file
tests/VectorDrawableTest/res/drawable/vector_drawable02.xml +20 −19 Original line number Diff line number Diff line <!-- Copyright (C) 2014 The Android Open Source Project <!-- Copyright (C) 2014 The Android Open Source Project Licensed under the Apache License, Version 2.0 (the "License"); you may not use this file except in compliance with the License. Loading @@ -15,23 +16,23 @@ <vector xmlns:android="http://schemas.android.com/apk/res/android" > <size android:width="64dp" android:height="64dp"/> android:height="64dp" android:width="64dp" /> <viewport android:viewportWidth="320" android:viewportHeight="320"/> <viewport android:viewportHeight="320" android:viewportWidth="320" /> <group> <path android:name="house" android:pathData="M 130,225 L 130,115 L 130,115 L 70,15 L 10,115 L 10,115 L 10,225 z" android:fill="#ff440000" android:stroke="#FF00FF00" android:strokeWidth="10" android:rotation="180" android:pathData="M 130,225 L 130,115 L 130,115 L 70,15 L 10,115 L 10,115 L 10,225 z" android:pivotX="70" android:pivotY="120" android:trimPathStart=".1" android:trimPathEnd=".9"/> </group> android:rotation="180" android:stroke="#FF00FF00" android:strokeWidth="10" android:trimPathEnd=".9" android:trimPathStart=".1" /> </vector> No newline at end of file
tests/VectorDrawableTest/res/drawable/vector_drawable03.xml +32 −37 Original line number Diff line number Diff line <!-- Copyright (C) 2014 The Android Open Source Project <!-- Copyright (C) 2014 The Android Open Source Project Licensed under the Apache License, Version 2.0 (the "License"); you may not use this file except in compliance with the License. Loading @@ -15,50 +16,46 @@ <vector xmlns:android="http://schemas.android.com/apk/res/android" > <size android:width="64dp" android:height="64dp"/> android:height="64dp" android:width="64dp" /> <viewport android:viewportWidth="7.30625" android:viewportHeight="12.25"/> <group> android:viewportHeight="12.25" android:viewportWidth="7.30625" /> <path android:name="clip1" android:clipToPath="true" android:pathData=" M 0, 0 l 7.3, 0 l 0, 0 l -7.3, 0 z" android:clipToPath="true" android:rotation="-30" android:pivotX="3.65" android:pivotY="6.125" /> android:rotation="-30" /> <path android:name="one" android:fill="#ff88ff" android:pathData="M 1.215625,9.5l 1.9375,0.0 0.0,-6.671875 -2.109375,0.421875 0.0,-1.078125 l 2.09375,-0.421875 1.1874998,0.0 0.0,7.75 1.9375,0.0 0.0,1.0 l -5.046875,0.0 0.0,-1.0Z" android:fill="#ff88ff" /> l -5.046875,0.0 0.0,-1.0Z" /> <path android:name="clip2" android:clipToPath="true" android:pathData=" M 0, 0 l 7.3, 0 l 0, 12.25 l -7.3, 0 z" android:clipToPath="true" android:rotation="-30" android:pivotX="3.65" android:pivotY="6.125" /> android:rotation="-30" /> <path android:name="two" android:fill="#ff88ff" android:pathData="M 2.534375,9.6875l 4.140625,0.0 0.0,1.0 -5.5625,0.0 0.0,-1.0q 0.671875,-0.6875 1.828125,-1.859375 q 1.1718752,-1.1875 1.4687502,-1.53125 0.578125,-0.625 0.796875,-1.0625 q 0.234375,-0.453125 0.234375,-0.875 0.0,-0.703125 -0.5,-1.140625 Loading @@ -67,8 +64,6 @@ q 0.625,-0.15625 1.140625,-0.15625 1.3593752,0.0 2.1718752,0.6875 q 0.8125,0.671875 0.8125,1.8125 0.0,0.53125 -0.203125,1.015625 q -0.203125,0.484375 -0.734375,1.140625 -0.15625,0.171875 -0.9375,0.984375 q -0.78125024,0.8125 -2.2187502,2.265625Z" android:fill="#ff88ff" /> </group> q -0.78125024,0.8125 -2.2187502,2.265625Z" /> </vector> No newline at end of file
tests/VectorDrawableTest/res/drawable/vector_drawable04.xml +31 −36 Original line number Diff line number Diff line <!-- Copyright (C) 2014 The Android Open Source Project <!-- Copyright (C) 2014 The Android Open Source Project Licensed under the Apache License, Version 2.0 (the "License"); you may not use this file except in compliance with the License. Loading @@ -15,44 +16,40 @@ <vector xmlns:android="http://schemas.android.com/apk/res/android" > <size android:width="64dp" android:height="64dp"/> android:height="64dp" android:width="64dp" /> <viewport android:viewportWidth="7.30625" android:viewportHeight="12.25"/> android:viewportHeight="12.25" android:viewportWidth="7.30625" /> <group> <path android:name="clip1" android:clipToPath="true" android:fill="#112233" android:pathData=" M 3.65, 6.125 m -.001, 0 a .001,.001 0 1,0 .002,0 a .001,.001 0 1,0 -.002,0z" android:clipToPath="true" android:fill="#112233" /> a .001,.001 0 1,0 -.002,0z" /> <path android:name="one" android:fill="#ff88ff" android:pathData="M 1.215625,9.5l 1.9375,0.0 0.0,-6.671875 -2.109375,0.421875 0.0,-1.078125 l 2.09375,-0.421875 1.1874998,0.0 0.0,7.75 1.9375,0.0 0.0,1.0 l -5.046875,0.0 0.0,-1.0Z" android:fill="#ff88ff" /> l -5.046875,0.0 0.0,-1.0Z" /> <path android:name="clip2" android:clipToPath="true" android:fill="#112233" android:pathData=" M 3.65, 6.125 m -6, 0 a 6,6 0 1,0 12,0 a 6,6 0 1,0 -12,0z" android:clipToPath="true" android:fill="#112233" /> a 6,6 0 1,0 -12,0z" /> <path android:name="two" android:fill="#ff88ff" android:pathData="M 2.534375,9.6875l 4.140625,0.0 0.0,1.0 -5.5625,0.0 0.0,-1.0q 0.671875,-0.6875 1.828125,-1.859375 q 1.1718752,-1.1875 1.4687502,-1.53125 0.578125,-0.625 0.796875,-1.0625 q 0.234375,-0.453125 0.234375,-0.875 0.0,-0.703125 -0.5,-1.140625 Loading @@ -61,8 +58,6 @@ q 0.625,-0.15625 1.140625,-0.15625 1.3593752,0.0 2.1718752,0.6875 q 0.8125,0.671875 0.8125,1.8125 0.0,0.53125 -0.203125,1.015625 q -0.203125,0.484375 -0.734375,1.140625 -0.15625,0.171875 -0.9375,0.984375 q -0.78125024,0.8125 -2.2187502,2.265625Z" android:fill="#ff88ff" /> </group> q -0.78125024,0.8125 -2.2187502,2.265625Z" /> </vector> No newline at end of file