diff --git a/tests/tests/graphics/src/android/graphics/drawable/cts/AdaptiveIconDrawableTest.java b/tests/tests/graphics/src/android/graphics/drawable/cts/AdaptiveIconDrawableTest.java
index fce9b34..49d5bd0 100644
--- a/tests/tests/graphics/src/android/graphics/drawable/cts/AdaptiveIconDrawableTest.java
+++ b/tests/tests/graphics/src/android/graphics/drawable/cts/AdaptiveIconDrawableTest.java
@@ -243,8 +243,10 @@
 
     @Test
     public void testSetAlpha() {
-        AdaptiveIconDrawable iconDrawable = new AdaptiveIconDrawable(
-            new ColorDrawable(Color.RED), new ColorDrawable(Color.BLUE));
+        Bitmap b = Bitmap.createBitmap(1, 1, Config.ARGB_8888);
+        Drawable bg = new BitmapDrawable(b);
+        Drawable fg = new BitmapDrawable(b);
+        AdaptiveIconDrawable iconDrawable = new AdaptiveIconDrawable(bg, fg);
         iconDrawable.setBounds(0, 0, 100, 100);
 
         Bitmap bitmap = Bitmap.createBitmap(100, 100, Bitmap.Config.ARGB_8888);
@@ -257,11 +259,15 @@
         bitmap.eraseColor(Color.TRANSPARENT);
         iconDrawable.draw(canvas);
         assertEquals(200, Color.alpha(bitmap.getPixel(50, 50)));
+        assertEquals(200, bg.getAlpha());
+        assertEquals(200, fg.getAlpha());
 
         iconDrawable.setAlpha(100);
         bitmap.eraseColor(Color.TRANSPARENT);
         iconDrawable.draw(canvas);
         assertEquals(100, Color.alpha(bitmap.getPixel(50, 50)));
+        assertEquals(100, bg.getAlpha());
+        assertEquals(100, fg.getAlpha());
     }
 
     @Test
diff --git a/tests/tests/graphics/src/android/graphics/drawable/cts/AdaptiveIconMaskTest.java b/tests/tests/graphics/src/android/graphics/drawable/cts/AdaptiveIconMaskTest.java
index 87e3b73..a4b6c52 100644
--- a/tests/tests/graphics/src/android/graphics/drawable/cts/AdaptiveIconMaskTest.java
+++ b/tests/tests/graphics/src/android/graphics/drawable/cts/AdaptiveIconMaskTest.java
@@ -21,7 +21,6 @@
 import static org.junit.Assert.assertNotNull;
 import static org.junit.Assert.assertTrue;
 
-import android.content.res.Resources;
 import android.graphics.Color;
 import android.graphics.Path;
 import android.graphics.Path.Direction;
@@ -55,7 +54,6 @@
     private ColorDrawable mBlueDrawable;
     private ColorDrawable mRedDrawable;
     private AdaptiveIconDrawable mDrawable;
-    private static final float sMaskSize = AdaptiveIconDrawable.MASK_SIZE;
     private boolean mUseRoundIcon;
 
     @Before
@@ -63,6 +61,7 @@
         mBlueDrawable = new ColorDrawable(Color.BLUE);
         mRedDrawable = new ColorDrawable(Color.RED);
         mDrawable = new AdaptiveIconDrawable( mBlueDrawable, mRedDrawable);
+        mDrawable.setBounds(0, 0, 100, 100);
 
         mMask = mDrawable.getIconMask();
 
