diff options
Diffstat (limited to 'core')
-rw-r--r-- | core/java/android/view/TextureView.java | 5 | ||||
-rw-r--r-- | core/java/android/view/View.java | 9 | ||||
-rw-r--r-- | core/java/android/view/ViewGroup.java | 4 |
3 files changed, 16 insertions, 2 deletions
diff --git a/core/java/android/view/TextureView.java b/core/java/android/view/TextureView.java index c974ba1..d57132a 100644 --- a/core/java/android/view/TextureView.java +++ b/core/java/android/view/TextureView.java @@ -250,6 +250,11 @@ public class TextureView extends View { return LAYER_TYPE_HARDWARE; } + @Override + boolean hasStaticLayer() { + return true; + } + /** * Calling this method has no effect. */ diff --git a/core/java/android/view/View.java b/core/java/android/view/View.java index 2ebe756..d193d6e 100644 --- a/core/java/android/view/View.java +++ b/core/java/android/view/View.java @@ -10001,6 +10001,15 @@ public class View implements Drawable.Callback, Drawable.Callback2, KeyEvent.Cal } /** + * Indicates whether this view has a static layer. A view with layer type + * {@link #LAYER_TYPE_NONE} is a static layer. Other types of layers are + * dynamic. + */ + boolean hasStaticLayer() { + return mLayerType == LAYER_TYPE_NONE; + } + + /** * Indicates what type of layer is currently associated with this view. By default * a view does not have a layer, and the layer type is {@link #LAYER_TYPE_NONE}. * Refer to the documentation of {@link #setLayerType(int, android.graphics.Paint)} diff --git a/core/java/android/view/ViewGroup.java b/core/java/android/view/ViewGroup.java index ddb982a..fb0d80a 100644 --- a/core/java/android/view/ViewGroup.java +++ b/core/java/android/view/ViewGroup.java @@ -2560,8 +2560,8 @@ public abstract class ViewGroup extends View implements ViewParent, ViewManager final View[] children = mChildren; for (int i = 0; i < count; i++) { final View child = children[i]; - if (((child.mViewFlags & VISIBILITY_MASK) == VISIBLE || - child.getAnimation() != null) && child.getLayerType() == LAYER_TYPE_NONE) { + if (((child.mViewFlags & VISIBILITY_MASK) == VISIBLE || child.getAnimation() != null) && + child.hasStaticLayer()) { child.mRecreateDisplayList = (child.mPrivateFlags & INVALIDATED) == INVALIDATED; child.mPrivateFlags &= ~INVALIDATED; child.getDisplayList(); |