diff --git a/api/current.txt b/api/current.txt index 7ece217c92e8a..53ffb77899e6d 100644 --- a/api/current.txt +++ b/api/current.txt @@ -47891,7 +47891,7 @@ package android.view { method public void setVerticalScrollBarEnabled(boolean); method public void setVerticalScrollbarPosition(int); method public void setVisibility(int); - method public void setWillNotCacheDrawing(boolean); + method public deprecated void setWillNotCacheDrawing(boolean); method public void setWillNotDraw(boolean); method public void setX(float); method public void setY(float); @@ -47909,7 +47909,7 @@ package android.view { method public void unscheduleDrawable(android.graphics.drawable.Drawable); method public final void updateDragShadow(android.view.View.DragShadowBuilder); method protected boolean verifyDrawable(android.graphics.drawable.Drawable); - method public boolean willNotCacheDrawing(); + method public deprecated boolean willNotCacheDrawing(); method public boolean willNotDraw(); field public static final int ACCESSIBILITY_LIVE_REGION_ASSERTIVE = 2; // 0x2 field public static final int ACCESSIBILITY_LIVE_REGION_NONE = 0; // 0x0 diff --git a/core/java/android/view/View.java b/core/java/android/view/View.java index 97e11b157e7db..dc58f11e83fdd 100644 --- a/core/java/android/view/View.java +++ b/core/java/android/view/View.java @@ -10398,7 +10398,21 @@ public class View implements Drawable.Callback, KeyEvent.Callback, * * @param willNotCacheDrawing true if this view does not cache its * drawing, false otherwise + * + * @deprecated The view drawing cache was largely made obsolete with the introduction of + * hardware-accelerated rendering in API 11. With hardware-acceleration, intermediate cache + * layers are largely unnecessary and can easily result in a net loss in performance due to the + * cost of creating and updating the layer. In the rare cases where caching layers are useful, + * such as for alpha animations, {@link #setLayerType(int, Paint)} handles this with hardware + * rendering. For software-rendered snapshots of a small part of the View hierarchy or + * individual Views it is recommended to create a {@link Canvas} from either a {@link Bitmap} or + * {@link android.graphics.Picture} and call {@link #draw(Canvas)} on the View. However these + * software-rendered usages are discouraged and have compatibility issues with hardware-only + * rendering features such as {@link android.graphics.Bitmap.Config#HARDWARE Config.HARDWARE} + * bitmaps, real-time shadows, and outline clipping. For screenshots of the UI for feedback + * reports or unit testing the {@link PixelCopy} API is recommended. */ + @Deprecated public void setWillNotCacheDrawing(boolean willNotCacheDrawing) { setFlags(willNotCacheDrawing ? WILL_NOT_CACHE_DRAWING : 0, WILL_NOT_CACHE_DRAWING); } @@ -10407,8 +10421,22 @@ public class View implements Drawable.Callback, KeyEvent.Callback, * Returns whether or not this View can cache its drawing or not. * * @return true if this view does not cache its drawing, false otherwise + * + * @deprecated The view drawing cache was largely made obsolete with the introduction of + * hardware-accelerated rendering in API 11. With hardware-acceleration, intermediate cache + * layers are largely unnecessary and can easily result in a net loss in performance due to the + * cost of creating and updating the layer. In the rare cases where caching layers are useful, + * such as for alpha animations, {@link #setLayerType(int, Paint)} handles this with hardware + * rendering. For software-rendered snapshots of a small part of the View hierarchy or + * individual Views it is recommended to create a {@link Canvas} from either a {@link Bitmap} or + * {@link android.graphics.Picture} and call {@link #draw(Canvas)} on the View. However these + * software-rendered usages are discouraged and have compatibility issues with hardware-only + * rendering features such as {@link android.graphics.Bitmap.Config#HARDWARE Config.HARDWARE} + * bitmaps, real-time shadows, and outline clipping. For screenshots of the UI for feedback + * reports or unit testing the {@link PixelCopy} API is recommended. */ @ViewDebug.ExportedProperty(category = "drawing") + @Deprecated public boolean willNotCacheDrawing() { return (mViewFlags & WILL_NOT_CACHE_DRAWING) == WILL_NOT_CACHE_DRAWING; } diff --git a/core/java/android/widget/ImageView.java b/core/java/android/widget/ImageView.java index 4b951fa1824e7..13729874d3694 100644 --- a/core/java/android/widget/ImageView.java +++ b/core/java/android/widget/ImageView.java @@ -817,8 +817,6 @@ public class ImageView extends View { if (mScaleType != scaleType) { mScaleType = scaleType; - setWillNotCacheDrawing(mScaleType == ScaleType.CENTER); - requestLayout(); invalidate(); }