summaryrefslogtreecommitdiffstats
path: root/tests/VectorDrawableTest
diff options
context:
space:
mode:
authorztenghui <ztenghui@google.com>2014-06-16 10:30:58 -0700
committerztenghui <ztenghui@google.com>2014-06-18 12:55:22 -0700
commit16c1bd5db8f4f18e1eee8b19006bba5f06a88123 (patch)
tree2c4d15d0c4a80dcb10cc2df45e40ad30747e40dd /tests/VectorDrawableTest
parent5adf8ee451085ed6106b7dbadc6d8dcd9d90722b (diff)
downloadframeworks_base-16c1bd5db8f4f18e1eee8b19006bba5f06a88123.zip
frameworks_base-16c1bd5db8f4f18e1eee8b19006bba5f06a88123.tar.gz
frameworks_base-16c1bd5db8f4f18e1eee8b19006bba5f06a88123.tar.bz2
Improve constant state for VectorDrawable
Now inflation will not cause duplicated constant states. And update tests. Change-Id: I66861e5451c4c10d18756e8522546ea1cb938a55
Diffstat (limited to 'tests/VectorDrawableTest')
-rw-r--r--tests/VectorDrawableTest/AndroidManifest.xml10
-rw-r--r--tests/VectorDrawableTest/res/drawable-nodpi/bitmap_drawable01.jpgbin0 -> 3304 bytes
-rw-r--r--tests/VectorDrawableTest/src/com/android/test/dynamic/BitmapDrawableDupe.java78
3 files changed, 88 insertions, 0 deletions
diff --git a/tests/VectorDrawableTest/AndroidManifest.xml b/tests/VectorDrawableTest/AndroidManifest.xml
index db2efc3..890214f 100644
--- a/tests/VectorDrawableTest/AndroidManifest.xml
+++ b/tests/VectorDrawableTest/AndroidManifest.xml
@@ -33,6 +33,16 @@
</intent-filter>
</activity>
<activity
+ android:name="BitmapDrawableDupe"
+ android:label="Bitmap Performance of clones" >
+ <intent-filter>
+ <action android:name="android.intent.action.MAIN" />
+
+ <category android:name="com.android.test.dynamic.TEST" />
+ </intent-filter>
+
+ </activity>
+ <activity
android:name="VectorDrawableAnimation"
android:label="VectorTestAnimation" >
<intent-filter>
diff --git a/tests/VectorDrawableTest/res/drawable-nodpi/bitmap_drawable01.jpg b/tests/VectorDrawableTest/res/drawable-nodpi/bitmap_drawable01.jpg
new file mode 100644
index 0000000..dc8c197
--- /dev/null
+++ b/tests/VectorDrawableTest/res/drawable-nodpi/bitmap_drawable01.jpg
Binary files differ
diff --git a/tests/VectorDrawableTest/src/com/android/test/dynamic/BitmapDrawableDupe.java b/tests/VectorDrawableTest/src/com/android/test/dynamic/BitmapDrawableDupe.java
new file mode 100644
index 0000000..36c8f2b
--- /dev/null
+++ b/tests/VectorDrawableTest/src/com/android/test/dynamic/BitmapDrawableDupe.java
@@ -0,0 +1,78 @@
+/*
+ * 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.
+ */
+package com.android.test.dynamic;
+
+import android.app.Activity;
+import android.content.res.Resources;
+import android.graphics.drawable.BitmapDrawable;
+import android.os.Bundle;
+import android.widget.TextView;
+import android.widget.Button;
+import android.widget.GridLayout;
+import android.widget.ScrollView;
+
+import java.text.DecimalFormat;
+
+@SuppressWarnings({"UnusedDeclaration"})
+public class BitmapDrawableDupe extends Activity {
+ private static final String LOGCAT = "VectorDrawable1";
+ protected int[] icon = {
+ R.drawable.bitmap_drawable01,
+ R.drawable.bitmap_drawable01,
+ R.drawable.bitmap_drawable01,
+ R.drawable.bitmap_drawable01,
+ R.drawable.bitmap_drawable01,
+ R.drawable.bitmap_drawable01,
+ R.drawable.bitmap_drawable01,
+ R.drawable.bitmap_drawable01,
+ R.drawable.bitmap_drawable01,
+ R.drawable.bitmap_drawable01,
+ R.drawable.bitmap_drawable01,
+ R.drawable.bitmap_drawable01,
+ R.drawable.bitmap_drawable01,
+ R.drawable.bitmap_drawable01,
+ R.drawable.bitmap_drawable01,
+ R.drawable.bitmap_drawable01,
+ R.drawable.bitmap_drawable01,
+ R.drawable.bitmap_drawable01,
+ R.drawable.bitmap_drawable01,
+ R.drawable.bitmap_drawable01,
+ R.drawable.bitmap_drawable01,
+ };
+
+ @Override
+ protected void onCreate(Bundle savedInstanceState) {
+ super.onCreate(savedInstanceState);
+ ScrollView scrollView = new ScrollView(this);
+ GridLayout container = new GridLayout(this);
+ scrollView.addView(container);
+ container.setColumnCount(5);
+ container.setBackgroundColor(0xFF888888);
+
+ DecimalFormat df = new DecimalFormat("#.##");
+ long time = android.os.SystemClock.elapsedRealtimeNanos();
+ for (int i = 0; i < icon.length; i++) {
+ Button button = new Button(this);
+ button.setWidth(200);
+ button.setBackgroundResource(icon[i]);
+ container.addView(button);
+ }
+
+ setContentView(scrollView);
+ time = android.os.SystemClock.elapsedRealtimeNanos()-time;
+ TextView t = new TextView(this);
+ t.setText("avgS=" + df.format(time / (icon.length * 1000000.)) + " ms");
+ container.addView(t);
+ }
+}