Loading graphics/java/android/graphics/drawable/VectorDrawable.java +5 −3 Original line number Diff line number Diff line Loading @@ -147,10 +147,12 @@ public class VectorDrawable extends Drawable { } private VectorDrawable(VectorDrawableState state, Resources res, Theme theme) { if (theme != null && state.canApplyTheme()) { // If we need to apply a theme, implicitly mutate. mVectorState = new VectorDrawableState(state); if (theme != null && canApplyTheme()) { applyTheme(theme); } else { mVectorState = state; } mTintFilter = updateTintFilter(mTintFilter, state.mTint, state.mTintMode); Loading tests/VectorDrawableTest/AndroidManifest.xml +10 −0 Original line number Diff line number Diff line Loading @@ -32,6 +32,16 @@ <category android:name="com.android.test.dynamic.TEST" /> </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" > Loading tests/VectorDrawableTest/res/drawable-nodpi/bitmap_drawable01.jpg 0 → 100644 +3.23 KiB Loading image diff... tests/VectorDrawableTest/src/com/android/test/dynamic/BitmapDrawableDupe.java 0 → 100644 +78 −0 Original line number Diff line number Diff line /* * 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); } } Loading
graphics/java/android/graphics/drawable/VectorDrawable.java +5 −3 Original line number Diff line number Diff line Loading @@ -147,10 +147,12 @@ public class VectorDrawable extends Drawable { } private VectorDrawable(VectorDrawableState state, Resources res, Theme theme) { if (theme != null && state.canApplyTheme()) { // If we need to apply a theme, implicitly mutate. mVectorState = new VectorDrawableState(state); if (theme != null && canApplyTheme()) { applyTheme(theme); } else { mVectorState = state; } mTintFilter = updateTintFilter(mTintFilter, state.mTint, state.mTintMode); Loading
tests/VectorDrawableTest/AndroidManifest.xml +10 −0 Original line number Diff line number Diff line Loading @@ -32,6 +32,16 @@ <category android:name="com.android.test.dynamic.TEST" /> </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" > Loading
tests/VectorDrawableTest/res/drawable-nodpi/bitmap_drawable01.jpg 0 → 100644 +3.23 KiB Loading image diff...
tests/VectorDrawableTest/src/com/android/test/dynamic/BitmapDrawableDupe.java 0 → 100644 +78 −0 Original line number Diff line number Diff line /* * 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); } }