Merge "Add tileMode support into GradientColor" into nyc-dev

This commit is contained in:
Tenghui Zhu
2016-03-08 17:25:47 +00:00
committed by Android (Google) Code Review
20 changed files with 705 additions and 6 deletions

View File

@@ -17,6 +17,7 @@
package android.content.res;
import android.annotation.ColorInt;
import android.annotation.IntDef;
import android.annotation.NonNull;
import android.annotation.Nullable;
import android.content.res.Resources.Theme;
@@ -37,13 +38,48 @@ import android.util.Log;
import android.util.Xml;
import java.io.IOException;
import java.lang.annotation.Retention;
import java.lang.annotation.RetentionPolicy;
/**
* Lets you define a gradient color, which is used inside
* {@link android.graphics.drawable.VectorDrawable}.
*
* {@link android.content.res.GradientColor}s are created from XML resource files defined in the
* "color" subdirectory directory of an application's resource directory. The XML file contains
* a single "gradient" element with a number of attributes and elements inside. For example:
* <pre>
* &lt;gradient xmlns:android="http://schemas.android.com/apk/res/android"&gt;
* &lt;android:startColor="?android:attr/colorPrimary"/&gt;
* &lt;android:endColor="?android:attr/colorControlActivated"/&gt;
* &lt;.../&gt;
* &lt;android:type="linear"/&gt;
* &lt;/gradient&gt;
* </pre>
*
* This can describe either a {@link android.graphics.LinearGradient},
* {@link android.graphics.RadialGradient}, or {@link android.graphics.SweepGradient}.
*
* Note that different attributes are relevant for different types of gradient.
* For example, android:gradientRadius is only applied to RadialGradient.
* androd:centerX and android:centerY are only applied to SweepGradient or RadialGradient.
* android:startX, android:startY, android:endX and android:endY are only applied to LinearGradient.
*
* Also note if any color "item" element is defined, then startColor, centerColor and endColor will
* be ignored.
*/
public class GradientColor extends ComplexColor {
private static final String TAG = "GradientColor";
private static final boolean DBG_GRADIENT = false;
@IntDef({TILE_MODE_CLAMP, TILE_MODE_REPEAT, TILE_MODE_MIRROR})
@Retention(RetentionPolicy.SOURCE)
private @interface GradientTileMode {}
private static final int TILE_MODE_CLAMP = 0;
private static final int TILE_MODE_REPEAT = 1;
private static final int TILE_MODE_MIRROR = 2;
/** Lazily-created factory for this GradientColor. */
private GradientColorFactory mFactory;
@@ -54,7 +90,8 @@ public class GradientColor extends ComplexColor {
// all the XML information.
private Shader mShader = null;
// Below are the attributes at the root element <gradient>
// Below are the attributes at the root element <gradient>.
// NOTE: they need to be copied in the copy constructor!
private int mGradientType = GradientDrawable.LINEAR_GRADIENT;
private float mCenterX = 0f;
@@ -70,6 +107,8 @@ public class GradientColor extends ComplexColor {
private int mEndColor = 0;
private boolean mHasCenterColor = false;
private int mTileMode = 0; // Clamp mode.
private float mGradientRadius = 0f;
// Below are the attributes for the <item> element.
@@ -100,6 +139,7 @@ public class GradientColor extends ComplexColor {
mEndColor = copy.mEndColor;
mHasCenterColor = copy.mHasCenterColor;
mGradientRadius = copy.mGradientRadius;
mTileMode = copy.mTileMode;
if (copy.mItemColors != null) {
mItemColors = copy.mItemColors.clone();
@@ -117,6 +157,20 @@ public class GradientColor extends ComplexColor {
}
}
// Set the default to clamp mode.
private static Shader.TileMode parseTileMode(@GradientTileMode int tileMode) {
switch (tileMode) {
case TILE_MODE_CLAMP:
return Shader.TileMode.CLAMP;
case TILE_MODE_REPEAT:
return Shader.TileMode.REPEAT;
case TILE_MODE_MIRROR:
return Shader.TileMode.MIRROR;
default:
return Shader.TileMode.CLAMP;
}
}
/**
* Update the root level's attributes, either for inflate or applyTheme.
*/
@@ -150,6 +204,9 @@ public class GradientColor extends ComplexColor {
mEndColor = a.getColor(
R.styleable.GradientColor_endColor, mEndColor);
mTileMode = a.getInt(
R.styleable.GradientColor_tileMode, mTileMode);
if (DBG_GRADIENT) {
Log.v(TAG, "hasCenterColor is " + mHasCenterColor);
if (mHasCenterColor) {
@@ -157,6 +214,7 @@ public class GradientColor extends ComplexColor {
}
Log.v(TAG, "startColor: " + mStartColor);
Log.v(TAG, "endColor: " + mEndColor);
Log.v(TAG, "tileMode: " + mTileMode);
}
mGradientRadius = a.getFloat(R.styleable.GradientColor_gradientRadius,
@@ -406,11 +464,11 @@ public class GradientColor extends ComplexColor {
if (mGradientType == GradientDrawable.LINEAR_GRADIENT) {
mShader = new LinearGradient(mStartX, mStartY, mEndX, mEndY, tempColors, tempOffsets,
Shader.TileMode.CLAMP);
parseTileMode(mTileMode));
} else {
if (mGradientType == GradientDrawable.RADIAL_GRADIENT) {
mShader = new RadialGradient(mCenterX, mCenterY, mGradientRadius, tempColors,
tempOffsets, Shader.TileMode.CLAMP);
tempOffsets, parseTileMode(mTileMode));
} else {
mShader = new SweepGradient(mCenterX, mCenterY, tempColors, tempOffsets);
}

View File

@@ -8170,6 +8170,8 @@ i
Defined in same coordinates as the path itself -->
<attr name="endY" format="float" />
<!-- Defines the tile mode of the gradient. SweepGradient don't support tiling. -->
<attr name="tileMode"/>
</declare-styleable>
<!-- Describes an item of a GradientColor. Minimally need 2 items to define the gradient

View File

@@ -0,0 +1,30 @@
<?xml version="1.0" encoding="utf-8"?>
<!--
/*
* Copyright (C) 2016 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. You may obtain a copy of
* the License at
*
* http://www.apache.org/licenses/LICENSE-2.0
*
* Unless required by applicable law or agreed to in writing, software
* distributed under the License is distributed on an "AS IS" BASIS, WITHOUT
* WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. See the
* License for the specific language governing permissions and limitations under
* the License.
*/
-->
<gradient xmlns:android="http://schemas.android.com/apk/res/android"
android:angle="90"
android:startColor="?android:attr/colorPrimary"
android:endColor="?android:attr/colorControlActivated"
android:centerColor="#00ff0000"
android:startX="0"
android:startY="0"
android:endX="50"
android:endY="50"
android:type="linear"
android:tileMode="clamp">
</gradient>

View File

@@ -0,0 +1,34 @@
<?xml version="1.0" encoding="utf-8"?>
<!--
/*
* Copyright (C) 2016 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. You may obtain a copy of
* the License at
*
* http://www.apache.org/licenses/LICENSE-2.0
*
* Unless required by applicable law or agreed to in writing, software
* distributed under the License is distributed on an "AS IS" BASIS, WITHOUT
* WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. See the
* License for the specific language governing permissions and limitations under
* the License.
*/
-->
<gradient xmlns:android="http://schemas.android.com/apk/res/android"
android:angle="90"
android:startColor="?android:attr/colorPrimary"
android:endColor="?android:attr/colorControlActivated"
android:centerColor="#f00"
android:startX="0"
android:startY="0"
android:endX="50"
android:endY="50"
android:type="linear"
android:tileMode="mirror">
<item android:offset="0.1" android:color="?android:attr/colorPrimary"/>
<item android:offset="0.4" android:color="#f00"/>
<item android:offset="0.4" android:color="#fff"/>
<item android:offset="0.9" android:color="?android:attr/colorControlActivated"/>
</gradient>

View File

@@ -0,0 +1,33 @@
<?xml version="1.0" encoding="utf-8"?>
<!--
/*
* Copyright (C) 2016 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. You may obtain a copy of
* the License at
*
* http://www.apache.org/licenses/LICENSE-2.0
*
* Unless required by applicable law or agreed to in writing, software
* distributed under the License is distributed on an "AS IS" BASIS, WITHOUT
* WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. See the
* License for the specific language governing permissions and limitations under
* the License.
*/
-->
<gradient xmlns:android="http://schemas.android.com/apk/res/android"
android:angle="90"
android:startColor="?android:attr/colorPrimary"
android:endColor="?android:attr/colorControlActivated"
android:centerColor="#f00"
android:startX="0"
android:startY="0"
android:endX="50"
android:endY="50"
android:type="linear"
android:tileMode="repeat">
<item android:offset="0.1" android:color="?android:attr/colorPrimary"/>
<item android:offset="0.4" android:color="#fff"/>
<item android:offset="0.9" android:color="?android:attr/colorControlActivated"/>
</gradient>

View File

@@ -0,0 +1,28 @@
<?xml version="1.0" encoding="utf-8"?>
<!--
/*
* Copyright (C) 2016 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. You may obtain a copy of
* the License at
*
* http://www.apache.org/licenses/LICENSE-2.0
*
* Unless required by applicable law or agreed to in writing, software
* distributed under the License is distributed on an "AS IS" BASIS, WITHOUT
* WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. See the
* License for the specific language governing permissions and limitations under
* the License.
*/
-->
<gradient xmlns:android="http://schemas.android.com/apk/res/android"
android:centerColor="#ff0000"
android:endColor="?android:attr/colorControlActivated"
android:centerX="300"
android:centerY="300"
android:gradientRadius="50"
android:startColor="?android:attr/colorPrimary"
android:type="radial"
android:tileMode="clamp">
</gradient>

View File

@@ -1,5 +1,5 @@
<?xml version="1.0" encoding="utf-8"?>
<!--
<!--
/*
* Copyright (C) 2016 The Android Open Source Project
*

View File

@@ -0,0 +1,31 @@
<?xml version="1.0" encoding="utf-8"?>
<!--
/*
* Copyright (C) 2016 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. You may obtain a copy of
* the License at
*
* http://www.apache.org/licenses/LICENSE-2.0
*
* Unless required by applicable law or agreed to in writing, software
* distributed under the License is distributed on an "AS IS" BASIS, WITHOUT
* WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. See the
* License for the specific language governing permissions and limitations under
* the License.
*/
-->
<gradient xmlns:android="http://schemas.android.com/apk/res/android"
android:centerColor="#ff0000"
android:endColor="#ff0000ff"
android:centerX="300"
android:centerY="300"
android:gradientRadius="50"
android:startColor="#ffffffff"
android:type="radial"
android:tileMode="repeat">
<item android:offset="0.1" android:color="?android:attr/colorPrimary"/>
<item android:offset="0.4" android:color="#fff"/>
<item android:offset="0.9" android:color="?android:attr/colorControlActivated"/>
</gradient>

View File

@@ -1,5 +1,5 @@
<?xml version="1.0" encoding="utf-8"?>
<!--
<!--
/*
* Copyright (C) 2016 The Android Open Source Project
*

View File

@@ -0,0 +1,27 @@
<?xml version="1.0" encoding="utf-8"?>
<!--
/*
* Copyright (C) 2016 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. You may obtain a copy of
* the License at
*
* http://www.apache.org/licenses/LICENSE-2.0
*
* Unless required by applicable law or agreed to in writing, software
* distributed under the License is distributed on an "AS IS" BASIS, WITHOUT
* WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. See the
* License for the specific language governing permissions and limitations under
* the License.
*/
-->
<gradient xmlns:android="http://schemas.android.com/apk/res/android"
android:centerX="300"
android:centerY="300"
android:gradientRadius="50"
android:type="radial"
android:tileMode="mirror">
<item android:offset="0.1" android:color="?android:attr/colorPrimary"/>
<item android:offset="0.9" android:color="?android:attr/colorControlActivated"/>
</gradient>

View File

@@ -0,0 +1,28 @@
<?xml version="1.0" encoding="utf-8"?>
<!--
/*
* Copyright (C) 2016 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. You may obtain a copy of
* the License at
*
* http://www.apache.org/licenses/LICENSE-2.0
*
* Unless required by applicable law or agreed to in writing, software
* distributed under the License is distributed on an "AS IS" BASIS, WITHOUT
* WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. See the
* License for the specific language governing permissions and limitations under
* the License.
*/
-->
<gradient xmlns:android="http://schemas.android.com/apk/res/android"
android:centerColor="#ff0000"
android:endColor="#ff0000ff"
android:centerX="500"
android:centerY="500"
android:gradientRadius="10"
android:startColor="#ffffffff"
android:type="sweep"
android:tileMode="clamp">
</gradient>

View File

@@ -0,0 +1,31 @@
<?xml version="1.0" encoding="utf-8"?>
<!--
/*
* Copyright (C) 2016 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. You may obtain a copy of
* the License at
*
* http://www.apache.org/licenses/LICENSE-2.0
*
* Unless required by applicable law or agreed to in writing, software
* distributed under the License is distributed on an "AS IS" BASIS, WITHOUT
* WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. See the
* License for the specific language governing permissions and limitations under
* the License.
*/
-->
<gradient xmlns:android="http://schemas.android.com/apk/res/android"
android:centerX="500"
android:centerY="500"
android:gradientRadius="10"
android:type="sweep"
android:tileMode="mirror">
<item android:offset="-0.3" android:color="#f00"/>
<item android:offset="0.1" android:color="?android:attr/colorPrimary"/>
<item android:offset="0.4" android:color="#0f0"/>
<item android:offset="0.6" android:color="#00f"/>
<item android:offset="0.7" android:color="?android:attr/colorControlActivated"/>
<item android:offset="1.5" android:color="#00f"/>
</gradient>

View File

@@ -0,0 +1,31 @@
<?xml version="1.0" encoding="utf-8"?>
<!--
/*
* Copyright (C) 2016 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. You may obtain a copy of
* the License at
*
* http://www.apache.org/licenses/LICENSE-2.0
*
* Unless required by applicable law or agreed to in writing, software
* distributed under the License is distributed on an "AS IS" BASIS, WITHOUT
* WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. See the
* License for the specific language governing permissions and limitations under
* the License.
*/
-->
<gradient xmlns:android="http://schemas.android.com/apk/res/android"
android:centerColor="#ff0000"
android:endColor="#ff0000ff"
android:centerX="500"
android:centerY="500"
android:gradientRadius="10"
android:startColor="#ffffffff"
android:type="sweep"
android:tileMode="repeat">
<item android:offset="0.1" android:color="?android:attr/colorPrimary"/>
<item android:offset="0.4" android:color="#fff"/>
<item android:offset="0.9" android:color="?android:attr/colorControlActivated"/>
</gradient>

View File

@@ -0,0 +1,30 @@
<?xml version="1.0" encoding="utf-8"?>
<!--
/*
* Copyright (C) 2016 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. You may obtain a copy of
* the License at
*
* http://www.apache.org/licenses/LICENSE-2.0
*
* Unless required by applicable law or agreed to in writing, software
* distributed under the License is distributed on an "AS IS" BASIS, WITHOUT
* WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. See the
* License for the specific language governing permissions and limitations under
* the License.
*/
-->
<gradient xmlns:android="http://schemas.android.com/apk/res/android"
android:angle="90"
android:centerColor="#7f7f7f"
android:endColor="#ffffff"
android:startColor="#000000"
android:startX="0"
android:endX="50"
android:startY="0"
android:endY="0"
android:type="linear"
android:tileMode="clamp">
</gradient>

View File

@@ -0,0 +1,29 @@
<?xml version="1.0" encoding="utf-8"?>
<!--
/*
* Copyright (C) 2016 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. You may obtain a copy of
* the License at
*
* http://www.apache.org/licenses/LICENSE-2.0
*
* Unless required by applicable law or agreed to in writing, software
* distributed under the License is distributed on an "AS IS" BASIS, WITHOUT
* WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. See the
* License for the specific language governing permissions and limitations under
* the License.
*/
-->
<gradient xmlns:android="http://schemas.android.com/apk/res/android"
android:startX="0"
android:endX="50"
android:startY="0"
android:endY="0"
android:type="linear"
android:tileMode="mirror">
<item android:offset="0.1" android:color="#f00"/>
<item android:offset="0.2" android:color="#2f0f"/>
<item android:offset="0.9" android:color="#f00f"/>
</gradient>

View File

@@ -0,0 +1,33 @@
<?xml version="1.0" encoding="utf-8"?>
<!--
/*
* Copyright (C) 2016 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. You may obtain a copy of
* the License at
*
* http://www.apache.org/licenses/LICENSE-2.0
*
* Unless required by applicable law or agreed to in writing, software
* distributed under the License is distributed on an "AS IS" BASIS, WITHOUT
* WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. See the
* License for the specific language governing permissions and limitations under
* the License.
*/
-->
<gradient xmlns:android="http://schemas.android.com/apk/res/android"
android:angle="90"
android:centerColor="#7f7f7f"
android:endColor="#ffffff"
android:startColor="#000000"
android:startX="0"
android:endX="50"
android:startY="0"
android:endY="0"
android:type="linear"
android:tileMode="repeat">
<item android:offset="0.1" android:color="#f00"/>
<item android:offset="0.2" android:color="#f0f"/>
<item android:offset="0.9" android:color="#f00f"/>
</gradient>

View File

@@ -0,0 +1,91 @@
<?xml version="1.0" encoding="utf-8"?>
<!--
/*
* Copyright (C) 2016 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. You may obtain a copy of
* the License at
*
* http://www.apache.org/licenses/LICENSE-2.0
*
* Unless required by applicable law or agreed to in writing, software
* distributed under the License is distributed on an "AS IS" BASIS, WITHOUT
* WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. See the
* License for the specific language governing permissions and limitations under
* the License.
*/
-->
<vector xmlns:android="http://schemas.android.com/apk/res/android"
android:height="64dp"
android:width="64dp"
android:viewportHeight="400"
android:viewportWidth="400" >
<group android:name="backgroundGroup"
android:scaleX="0.5"
android:scaleY="0.5">
<path
android:name="background1"
android:fillColor="@color/fill_gradient_linear_clamp"
android:pathData="M 0,0 l 200,0 l 0, 200 l -200, 0 z" />
<path
android:name="background2"
android:fillColor="@color/fill_gradient_radial_clamp"
android:pathData="M 200,200 l 200,0 l 0, 200 l -200, 0 z" />
<path
android:name="background3"
android:fillColor="@color/fill_gradient_sweep_clamp"
android:pathData="M 400,400 l 200,0 l 0, 200 l -200, 0 z" />
</group>
<group
android:name="translateToCenterGroup"
android:translateX="50.0"
android:translateY="90.0" >
<path
android:name="twoLines"
android:pathData="@string/twoLinePathData"
android:strokeColor="@color/stroke_gradient_clamp"
android:strokeWidth="20" />
<group
android:name="rotationGroup"
android:pivotX="0.0"
android:pivotY="0.0"
android:rotation="-45.0">
<path
android:name="twoLines1"
android:pathData="@string/twoLinePathData"
android:strokeColor="@color/stroke_gradient_clamp"
android:strokeWidth="20" />
<group
android:name="translateGroup"
android:translateX="130.0"
android:translateY="160.0">
<group android:name="scaleGroup" >
<path
android:name="twoLines3"
android:pathData="@string/twoLinePathData"
android:strokeColor="@color/stroke_gradient_clamp"
android:strokeWidth="20" />
</group>
</group>
<group
android:name="translateGroupHalf"
android:translateX="65.0"
android:translateY="80.0">
<group android:name="scaleGroup" >
<path
android:name="twoLines2"
android:pathData="@string/twoLinePathData"
android:fillColor="@color/fill_gradient_linear_clamp"
android:strokeColor="@color/stroke_gradient_clamp"
android:strokeWidth="20" />
</group>
</group>
</group>
</group>
</vector>

View File

@@ -0,0 +1,90 @@
<?xml version="1.0" encoding="utf-8"?>
<!--
/*
* Copyright (C) 2016 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. You may obtain a copy of
* the License at
*
* http://www.apache.org/licenses/LICENSE-2.0
*
* Unless required by applicable law or agreed to in writing, software
* distributed under the License is distributed on an "AS IS" BASIS, WITHOUT
* WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. See the
* License for the specific language governing permissions and limitations under
* the License.
*/
-->
<vector xmlns:android="http://schemas.android.com/apk/res/android"
android:height="64dp"
android:width="64dp"
android:viewportHeight="400"
android:viewportWidth="400" >
<group android:name="backgroundGroup"
android:scaleX="0.5"
android:scaleY="0.5">
<path
android:name="background1"
android:fillColor="@color/fill_gradient_linear_item_repeat"
android:pathData="M 0,0 l 200,0 l 0, 200 l -200, 0 z" />
<path
android:name="background2"
android:fillColor="@color/fill_gradient_radial_item_repeat"
android:pathData="M 200,200 l 200,0 l 0, 200 l -200, 0 z" />
<path
android:name="background3"
android:fillColor="@color/fill_gradient_sweep_item_repeat"
android:pathData="M 400,400 l 200,0 l 0, 200 l -200, 0 z" />
</group>
<group
android:name="translateToCenterGroup"
android:translateX="50.0"
android:translateY="90.0" >
<path
android:name="twoLines"
android:pathData="@string/twoLinePathData"
android:strokeColor="@color/stroke_gradient_item_repeat"
android:strokeWidth="20" />
<group
android:name="rotationGroup"
android:pivotX="0.0"
android:pivotY="0.0"
android:rotation="-45.0">
<path
android:name="twoLines1"
android:pathData="@string/twoLinePathData"
android:strokeColor="@color/stroke_gradient_item_repeat"
android:strokeWidth="20" />
<group
android:name="translateGroup"
android:translateX="130.0"
android:translateY="160.0">
<group android:name="scaleGroup" >
<path
android:name="twoLines3"
android:pathData="@string/twoLinePathData"
android:strokeColor="@color/stroke_gradient_item_repeat"
android:strokeWidth="20" />
</group>
</group>
<group
android:name="translateGroupHalf"
android:translateX="65.0"
android:translateY="80.0">
<group android:name="scaleGroup" >
<path
android:name="twoLines2"
android:pathData="@string/twoLinePathData"
android:strokeColor="@color/stroke_gradient_item_repeat"
android:strokeWidth="20" />
</group>
</group>
</group>
</group>
</vector>

View File

@@ -0,0 +1,90 @@
<?xml version="1.0" encoding="utf-8"?>
<!--
/*
* Copyright (C) 2016 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. You may obtain a copy of
* the License at
*
* http://www.apache.org/licenses/LICENSE-2.0
*
* Unless required by applicable law or agreed to in writing, software
* distributed under the License is distributed on an "AS IS" BASIS, WITHOUT
* WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. See the
* License for the specific language governing permissions and limitations under
* the License.
*/
-->
<vector xmlns:android="http://schemas.android.com/apk/res/android"
android:height="64dp"
android:width="64dp"
android:viewportHeight="400"
android:viewportWidth="400" >
<group android:name="backgroundGroup"
android:scaleX="0.5"
android:scaleY="0.5">
<path
android:name="background1"
android:fillColor="@color/fill_gradient_linear_item_overlap_mirror"
android:pathData="M 0,0 l 200,0 l 0, 200 l -200, 0 z" />
<path
android:name="background2"
android:fillColor="@color/fill_gradient_radial_item_short_mirror"
android:pathData="M 200,200 l 200,0 l 0, 200 l -200, 0 z" />
<path
android:name="background3"
android:fillColor="@color/fill_gradient_sweep_item_long_mirror"
android:pathData="M 400,400 l 200,0 l 0, 200 l -200, 0 z" />
</group>
<group
android:name="translateToCenterGroup"
android:translateX="50.0"
android:translateY="90.0" >
<path
android:name="twoLines"
android:pathData="@string/twoLinePathData"
android:strokeColor="@color/stroke_gradient_item_alpha_mirror"
android:strokeWidth="20" />
<group
android:name="rotationGroup"
android:pivotX="0.0"
android:pivotY="0.0"
android:rotation="-45.0">
<path
android:name="twoLines1"
android:pathData="@string/twoLinePathData"
android:strokeColor="@color/stroke_gradient_item_alpha_mirror"
android:strokeWidth="20" />
<group
android:name="translateGroup"
android:translateX="130.0"
android:translateY="160.0">
<group android:name="scaleGroup" >
<path
android:name="twoLines3"
android:pathData="@string/twoLinePathData"
android:strokeColor="@color/stroke_gradient_item_alpha_mirror"
android:strokeWidth="20" />
</group>
</group>
<group
android:name="translateGroupHalf"
android:translateX="65.0"
android:translateY="80.0">
<group android:name="scaleGroup" >
<path
android:name="twoLines2"
android:pathData="@string/twoLinePathData"
android:strokeColor="@color/stroke_gradient_item_alpha"
android:strokeWidth="20" />
</group>
</group>
</group>
</group>
</vector>

View File

@@ -38,6 +38,9 @@ public class VectorDrawablePerformance extends Activity {
R.drawable.vector_icon_gradient_1,
R.drawable.vector_icon_gradient_2,
R.drawable.vector_icon_gradient_3,
R.drawable.vector_icon_gradient_1_clamp,
R.drawable.vector_icon_gradient_2_repeat,
R.drawable.vector_icon_gradient_3_mirror,
R.drawable.vector_icon_state_list_simple,
R.drawable.vector_icon_state_list_theme,
R.drawable.vector_drawable01,