summaryrefslogtreecommitdiffstats
path: root/core/java/android/view/View.java
diff options
context:
space:
mode:
authorChris Craik <ccraik@google.com>2015-06-09 10:43:03 -0700
committerChris Craik <ccraik@google.com>2015-06-09 13:50:01 -0700
commitf396f011eefb79e1728747dcc1df9c42278a8d44 (patch)
tree497ab22ba39b4e6bcf478cc35aee46a10bc1dc5a /core/java/android/view/View.java
parent72285e5600fad17c42730d6f84164d8425d4d43c (diff)
downloadframeworks_base-f396f011eefb79e1728747dcc1df9c42278a8d44.zip
frameworks_base-f396f011eefb79e1728747dcc1df9c42278a8d44.tar.gz
frameworks_base-f396f011eefb79e1728747dcc1df9c42278a8d44.tar.bz2
Dont ignore layer paint alpha in software path
bug:19412691 Change-Id: Ie56b2cbc667a078eb4a7c5bfe7b8e8dd6b0fc24b
Diffstat (limited to 'core/java/android/view/View.java')
-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 342315b..2e6044e 100644
--- a/core/java/android/view/View.java
+++ b/core/java/android/view/View.java
@@ -16064,23 +16064,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) {