summaryrefslogtreecommitdiff
path: root/core/java/android
diff options
context:
space:
mode:
authorChris Craik <ccraik@google.com>2015-06-09 22:23:34 +0000
committerAndroid (Google) Code Review <android-gerrit@google.com>2015-06-09 22:23:36 +0000
commit751afe2040a1954826f550c0fdc2c1f148fe21eb (patch)
treef75ef9d338e37a8c5075480683ea6fe252584f57 /core/java/android
parentbcdf0dc1992b97579c4d5e0822dd58c597bb45a5 (diff)
parentf396f011eefb79e1728747dcc1df9c42278a8d44 (diff)
Merge "Dont ignore layer paint alpha in software path" into mnc-dev
Diffstat (limited to 'core/java/android')
-rw-r--r--core/java/android/view/View.java18
1 files changed, 9 insertions, 9 deletions
diff --git a/core/java/android/view/View.java b/core/java/android/view/View.java
index 5dd5ab813fbd..be372d0bf859 100644
--- a/core/java/android/view/View.java
+++ b/core/java/android/view/View.java
@@ -16070,23 +16070,23 @@ public class View implements Drawable.Callback, KeyEvent.Callback,
}
} else if (cache != null) {
mPrivateFlags &= ~PFLAG_DIRTY_MASK;
- Paint cachePaint;
- int restoreAlpha = 0;
-
if (layerType == LAYER_TYPE_NONE) {
- cachePaint = parent.mCachePaint;
+ // no layer paint, use temporary paint to draw bitmap
+ Paint cachePaint = parent.mCachePaint;
if (cachePaint == null) {
cachePaint = new Paint();
cachePaint.setDither(false);
parent.mCachePaint = cachePaint;
}
+ cachePaint.setAlpha((int) (alpha * 255));
+ canvas.drawBitmap(cache, 0.0f, 0.0f, cachePaint);
} else {
- cachePaint = mLayerPaint;
- restoreAlpha = mLayerPaint.getAlpha();
+ // use layer paint to draw the bitmap, merging the two alphas, but also restore
+ int layerPaintAlpha = mLayerPaint.getAlpha();
+ mLayerPaint.setAlpha((int) (alpha * layerPaintAlpha));
+ canvas.drawBitmap(cache, 0.0f, 0.0f, mLayerPaint);
+ mLayerPaint.setAlpha(layerPaintAlpha);
}
- cachePaint.setAlpha((int) (alpha * 255));
- canvas.drawBitmap(cache, 0.0f, 0.0f, cachePaint);
- cachePaint.setAlpha(restoreAlpha);
}
if (restoreTo >= 0) {