Merge "Setting the alpha on the full bitmap for AdaptiveIcon instead of individual layers" into pi-dev

This commit is contained in:
TreeHugger Robot
2018-03-07 23:58:24 +00:00
committed by Android (Google) Code Review
2 changed files with 27 additions and 12 deletions

View File

@@ -1,15 +1,11 @@
package android.graphics.drawable; package android.graphics.drawable;
import static org.junit.Assert.assertTrue;
import android.content.res.Resources; import android.content.res.Resources;
import android.graphics.Bitmap; import android.graphics.Bitmap;
import android.graphics.Bitmap.Config; import android.graphics.Bitmap.Config;
import android.graphics.BitmapFactory;
import android.graphics.Canvas; import android.graphics.Canvas;
import android.graphics.Color; import android.graphics.Color;
import android.graphics.Outline; import android.graphics.Outline;
import android.graphics.Paint;
import android.graphics.Path; import android.graphics.Path;
import android.graphics.Path.Direction; import android.graphics.Path.Direction;
import android.graphics.Rect; import android.graphics.Rect;
@@ -19,10 +15,12 @@ import android.support.test.filters.LargeTest;
import android.test.AndroidTestCase; import android.test.AndroidTestCase;
import android.util.Log; import android.util.Log;
import android.util.PathParser; import android.util.PathParser;
import org.junit.Test;
import java.io.File; import java.io.File;
import java.io.FileOutputStream; import java.io.FileOutputStream;
import java.util.Arrays; import java.util.Arrays;
import org.junit.Test;
@LargeTest @LargeTest
public class AdaptiveIconDrawableTest extends AndroidTestCase { public class AdaptiveIconDrawableTest extends AndroidTestCase {
@@ -173,6 +171,28 @@ public class AdaptiveIconDrawableTest extends AndroidTestCase {
assertTrue("outline path should be convex", outline.mPath.isConvex()); assertTrue("outline path should be convex", outline.mPath.isConvex());
} }
@Test
public void testSetAlpha() throws Exception {
mIconDrawable = new AdaptiveIconDrawable(mBackgroundDrawable, mForegroundDrawable);
mIconDrawable.setBounds(0, 0, 100, 100);
Bitmap bitmap = Bitmap.createBitmap(100, 100, Bitmap.Config.ARGB_8888);
Canvas canvas = new Canvas(bitmap);
mIconDrawable.draw(canvas);
assertEquals(255, Color.alpha(bitmap.getPixel(50, 50)));
mIconDrawable.setAlpha(200);
bitmap.eraseColor(Color.TRANSPARENT);
mIconDrawable.draw(canvas);
assertEquals(200, Color.alpha(bitmap.getPixel(50, 50)));
mIconDrawable.setAlpha(100);
bitmap.eraseColor(Color.TRANSPARENT);
mIconDrawable.draw(canvas);
assertEquals(100, Color.alpha(bitmap.getPixel(50, 50)));
}
// //
// Utils // Utils
// //

View File

@@ -44,6 +44,7 @@ import android.util.DisplayMetrics;
import android.util.PathParser; import android.util.PathParser;
import com.android.internal.R; import com.android.internal.R;
import org.xmlpull.v1.XmlPullParser; import org.xmlpull.v1.XmlPullParser;
import org.xmlpull.v1.XmlPullParserException; import org.xmlpull.v1.XmlPullParserException;
@@ -668,13 +669,7 @@ public class AdaptiveIconDrawable extends Drawable implements Drawable.Callback
@Override @Override
public void setAlpha(int alpha) { public void setAlpha(int alpha) {
final ChildDrawable[] array = mLayerState.mChildren; mPaint.setAlpha(alpha);
for (int i = 0; i < mLayerState.N_CHILDREN; i++) {
final Drawable dr = array[i].mDrawable;
if (dr != null) {
dr.setAlpha(alpha);
}
}
} }
@Override @Override