Merge "Setting the alpha on the full bitmap for AdaptiveIcon instead of individual layers" into pi-dev
This commit is contained in:
committed by
Android (Google) Code Review
commit
b577d00c35
@@ -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
|
||||||
//
|
//
|
||||||
|
|||||||
@@ -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
|
||||||
|
|||||||
Reference in New Issue
Block a user