diff --git a/core/java/android/view/View.java b/core/java/android/view/View.java index 27c1978743016..23792be63652b 100644 --- a/core/java/android/view/View.java +++ b/core/java/android/view/View.java @@ -15531,6 +15531,13 @@ public class View implements Drawable.Callback, KeyEvent.Callback, final int width = bounds.width(); final int height = bounds.height(); final HardwareCanvas canvas = renderNode.start(width, height); + + // Reverse left/top translation done by drawable canvas, which will + // instead be applied by rendernode's LTRB bounds below. This way, the + // drawable's bounds match with its rendernode bounds and its content + // will lie within those bounds in the rendernode tree. + canvas.translate(-bounds.left, -bounds.top); + try { drawable.draw(canvas); } finally {