diff options
author | Justin Klaassen <justinklaassen@google.com> | 2018-04-03 23:21:57 -0400 |
---|---|---|
committer | Justin Klaassen <justinklaassen@google.com> | 2018-04-03 23:21:57 -0400 |
commit | 4d01eeaffaa720e4458a118baa137a11614f00f7 (patch) | |
tree | 66751893566986236788e3c796a7cc5e90d05f52 /android/transition/TransitionUtils.java | |
parent | a192cc2a132cb0ee8588e2df755563ec7008c179 (diff) | |
download | android-28-4d01eeaffaa720e4458a118baa137a11614f00f7.tar.gz |
Import Android SDK Platform P [4697573]
/google/data/ro/projects/android/fetch_artifact \
--bid 4697573 \
--target sdk_phone_armv7-win_sdk \
sdk-repo-linux-sources-4697573.zip
AndroidVersion.ApiLevel has been modified to appear as 28
Change-Id: If80578c3c657366cc9cf75f8db13d46e2dd4e077
Diffstat (limited to 'android/transition/TransitionUtils.java')
-rw-r--r-- | android/transition/TransitionUtils.java | 30 |
1 files changed, 15 insertions, 15 deletions
diff --git a/android/transition/TransitionUtils.java b/android/transition/TransitionUtils.java index 084b79d5..46c9e0c7 100644 --- a/android/transition/TransitionUtils.java +++ b/android/transition/TransitionUtils.java @@ -20,14 +20,13 @@ import android.animation.Animator; import android.animation.AnimatorSet; import android.animation.TypeEvaluator; import android.graphics.Bitmap; +import android.graphics.Canvas; import android.graphics.Matrix; +import android.graphics.Picture; import android.graphics.Rect; import android.graphics.RectF; import android.graphics.drawable.BitmapDrawable; import android.graphics.drawable.Drawable; -import android.view.DisplayListCanvas; -import android.view.RenderNode; -import android.view.ThreadedRenderer; import android.view.View; import android.view.ViewGroup; import android.widget.ImageView; @@ -128,10 +127,8 @@ public class TransitionUtils { } int bitmapWidth = (int) (width * scale); int bitmapHeight = (int) (height * scale); - final RenderNode node = RenderNode.create("TransitionUtils", hostView); - node.setLeftTopRightBottom(0, 0, width, height); - node.setClipToBounds(false); - final DisplayListCanvas canvas = node.start(width, height); + final Picture picture = new Picture(); + final Canvas canvas = picture.beginRecording(width, height); // Do stuff with the canvas Rect existingBounds = drawable.getBounds(); int left = existingBounds.left; @@ -141,8 +138,8 @@ public class TransitionUtils { drawable.setBounds(0, 0, bitmapWidth, bitmapHeight); drawable.draw(canvas); drawable.setBounds(left, top, right, bottom); - node.end(canvas); - return ThreadedRenderer.createHardwareBitmap(node, width, height); + picture.endRecording(); + return Bitmap.createBitmap(picture); } /** @@ -163,10 +160,14 @@ public class TransitionUtils { public static Bitmap createViewBitmap(View view, Matrix matrix, RectF bounds, ViewGroup sceneRoot) { final boolean addToOverlay = !view.isAttachedToWindow(); + ViewGroup parent = null; + int indexInParent = 0; if (addToOverlay) { if (sceneRoot == null || !sceneRoot.isAttachedToWindow()) { return null; } + parent = (ViewGroup) view.getParent(); + indexInParent = parent.indexOfChild(view); sceneRoot.getOverlay().add(view); } Bitmap bitmap = null; @@ -179,17 +180,16 @@ public class TransitionUtils { matrix.postTranslate(-bounds.left, -bounds.top); matrix.postScale(scale, scale); - final RenderNode node = RenderNode.create("TransitionUtils", view); - node.setLeftTopRightBottom(0, 0, bitmapWidth, bitmapHeight); - node.setClipToBounds(false); - final DisplayListCanvas canvas = node.start(bitmapWidth, bitmapHeight); + final Picture picture = new Picture(); + final Canvas canvas = picture.beginRecording(bitmapWidth, bitmapHeight); canvas.concat(matrix); view.draw(canvas); - node.end(canvas); - bitmap = ThreadedRenderer.createHardwareBitmap(node, bitmapWidth, bitmapHeight); + picture.endRecording(); + bitmap = Bitmap.createBitmap(picture); } if (addToOverlay) { sceneRoot.getOverlay().remove(view); + parent.addView(view, indexInParent); } return bitmap; } |