am e6411c76
: Merge "Support dot separation as the svg path data did." into lmp-mr1-dev
* commit 'e6411c76c44930cd893b78ea9f59f26a4a441881': Support dot separation as the svg path data did.
This commit is contained in:
@ -142,9 +142,9 @@ public class PathParser {
|
|||||||
|
|
||||||
private static class ExtractFloatResult {
|
private static class ExtractFloatResult {
|
||||||
// We need to return the position of the next separator and whether the
|
// We need to return the position of the next separator and whether the
|
||||||
// next float starts with a '-'.
|
// next float starts with a '-' or a '.'.
|
||||||
int mEndPosition;
|
int mEndPosition;
|
||||||
boolean mEndWithNegSign;
|
boolean mEndWithNegOrDot;
|
||||||
}
|
}
|
||||||
|
|
||||||
/**
|
/**
|
||||||
@ -179,8 +179,8 @@ public class PathParser {
|
|||||||
s.substring(startPosition, endPosition));
|
s.substring(startPosition, endPosition));
|
||||||
}
|
}
|
||||||
|
|
||||||
if (result.mEndWithNegSign) {
|
if (result.mEndWithNegOrDot) {
|
||||||
// Keep the '-' sign with next number.
|
// Keep the '-' or '.' sign with next number.
|
||||||
startPosition = endPosition;
|
startPosition = endPosition;
|
||||||
} else {
|
} else {
|
||||||
startPosition = endPosition + 1;
|
startPosition = endPosition + 1;
|
||||||
@ -201,10 +201,11 @@ public class PathParser {
|
|||||||
* the starting position of next number, whether it is ending with a '-'.
|
* the starting position of next number, whether it is ending with a '-'.
|
||||||
*/
|
*/
|
||||||
private static void extract(String s, int start, ExtractFloatResult result) {
|
private static void extract(String s, int start, ExtractFloatResult result) {
|
||||||
// Now looking for ' ', ',' or '-' from the start.
|
// Now looking for ' ', ',', '.' or '-' from the start.
|
||||||
int currentIndex = start;
|
int currentIndex = start;
|
||||||
boolean foundSeparator = false;
|
boolean foundSeparator = false;
|
||||||
result.mEndWithNegSign = false;
|
result.mEndWithNegOrDot = false;
|
||||||
|
boolean secondDot = false;
|
||||||
for (; currentIndex < s.length(); currentIndex++) {
|
for (; currentIndex < s.length(); currentIndex++) {
|
||||||
char currentChar = s.charAt(currentIndex);
|
char currentChar = s.charAt(currentIndex);
|
||||||
switch (currentChar) {
|
switch (currentChar) {
|
||||||
@ -215,7 +216,16 @@ public class PathParser {
|
|||||||
case '-':
|
case '-':
|
||||||
if (currentIndex != start) {
|
if (currentIndex != start) {
|
||||||
foundSeparator = true;
|
foundSeparator = true;
|
||||||
result.mEndWithNegSign = true;
|
result.mEndWithNegOrDot = true;
|
||||||
|
}
|
||||||
|
break;
|
||||||
|
case '.':
|
||||||
|
if (!secondDot) {
|
||||||
|
secondDot = true;
|
||||||
|
} else {
|
||||||
|
// This is the second dot, and it is considered as a separator.
|
||||||
|
foundSeparator = true;
|
||||||
|
result.mEndWithNegOrDot = true;
|
||||||
}
|
}
|
||||||
break;
|
break;
|
||||||
}
|
}
|
||||||
|
@ -18,7 +18,7 @@
|
|||||||
<manifest xmlns:android="http://schemas.android.com/apk/res/android"
|
<manifest xmlns:android="http://schemas.android.com/apk/res/android"
|
||||||
package="com.android.test.dynamic" >
|
package="com.android.test.dynamic" >
|
||||||
|
|
||||||
<uses-sdk android:minSdkVersion="20" />
|
<uses-sdk android:minSdkVersion="21" />
|
||||||
|
|
||||||
<application
|
<application
|
||||||
android:hardwareAccelerated="true"
|
android:hardwareAccelerated="true"
|
||||||
|
28
tests/VectorDrawableTest/res/drawable/vector_drawable29.xml
Normal file
28
tests/VectorDrawableTest/res/drawable/vector_drawable29.xml
Normal file
@ -0,0 +1,28 @@
|
|||||||
|
<!--
|
||||||
|
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.
|
||||||
|
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="48dp"
|
||||||
|
android:width="48dp"
|
||||||
|
android:viewportHeight="1"
|
||||||
|
android:viewportWidth="1" >
|
||||||
|
|
||||||
|
<group>
|
||||||
|
<path
|
||||||
|
android:name="box1"
|
||||||
|
android:pathData="l0.0.0.5.0.0.5-0.5.0.0-.5z"
|
||||||
|
android:fillColor="#ff00ff00"/>
|
||||||
|
</group>
|
||||||
|
</vector>
|
@ -56,6 +56,7 @@ public class VectorDrawablePerformance extends Activity {
|
|||||||
R.drawable.vector_drawable26,
|
R.drawable.vector_drawable26,
|
||||||
R.drawable.vector_drawable27,
|
R.drawable.vector_drawable27,
|
||||||
R.drawable.vector_drawable28,
|
R.drawable.vector_drawable28,
|
||||||
|
R.drawable.vector_drawable29,
|
||||||
};
|
};
|
||||||
|
|
||||||
@Override
|
@Override
|
||||||
|
Reference in New Issue
Block a user