summaryrefslogtreecommitdiffstats
path: root/core/java/android/view
diff options
context:
space:
mode:
authorRomain Guy <romainguy@google.com>2011-02-01 13:05:16 -0800
committerRomain Guy <romainguy@google.com>2011-02-01 13:05:16 -0800
commit54229ee5eb92e3e2fc63d75353bcf09e0ebc8030 (patch)
treecbec7a5d7caa4a04d534de6d624b3ae6670d1de9 /core/java/android/view
parentfeeea8f07c854e6b0ae2fec3aa2d239c17f32b5b (diff)
downloadframeworks_base-54229ee5eb92e3e2fc63d75353bcf09e0ebc8030.zip
frameworks_base-54229ee5eb92e3e2fc63d75353bcf09e0ebc8030.tar.gz
frameworks_base-54229ee5eb92e3e2fc63d75353bcf09e0ebc8030.tar.bz2
Correctly set the alpha of a hardware layer before drawing it.
Bug #3410819 Change-Id: I3ebaca2233f4edf5b59d84ec7706555056a1a4b1
Diffstat (limited to 'core/java/android/view')
-rw-r--r--core/java/android/view/ViewGroup.java8
1 files changed, 2 insertions, 6 deletions
diff --git a/core/java/android/view/ViewGroup.java b/core/java/android/view/ViewGroup.java
index d0509b2..f0aaf3f 100644
--- a/core/java/android/view/ViewGroup.java
+++ b/core/java/android/view/ViewGroup.java
@@ -2444,17 +2444,12 @@ public abstract class ViewGroup extends View implements ViewParent, ViewManager
layerType != LAYER_TYPE_NONE) {
layerFlags |= Canvas.CLIP_TO_LAYER_SAVE_FLAG;
}
- if (layerType != LAYER_TYPE_NONE) {
- child.mLayerPaint.setAlpha(multipliedAlpha);
- } else {
+ if (layerType == LAYER_TYPE_NONE) {
canvas.saveLayerAlpha(sx, sy, sx + cr - cl, sy + cb - ct,
multipliedAlpha, layerFlags);
}
} else {
// Alpha is handled by the child directly, clobber the layer's alpha
- if (layerType != LAYER_TYPE_NONE) {
- child.mLayerPaint.setAlpha(255);
- }
child.mPrivateFlags |= ALPHA_SET;
}
}
@@ -2485,6 +2480,7 @@ public abstract class ViewGroup extends View implements ViewParent, ViewManager
if (layerType == LAYER_TYPE_HARDWARE) {
final HardwareLayer layer = child.getHardwareLayer();
if (layer != null && layer.isValid()) {
+ child.mLayerPaint.setAlpha((int) (alpha * 255));
((HardwareCanvas) canvas).drawHardwareLayer(layer, 0, 0, child.mLayerPaint);
layerRendered = true;
} else {