Merge "Associate RenderNodes created for hw bitmap w/ views" into oc-mr1-dev
am: a3acf73c3e
Change-Id: I1aa48a41fbbf453f9a3d0ce794f81103a5ed1e35
This commit is contained in:
@@ -176,7 +176,7 @@ public abstract class SharedElementCallback {
|
||||
Drawable d = imageView.getDrawable();
|
||||
Drawable bg = imageView.getBackground();
|
||||
if (d != null && (bg == null || bg.getAlpha() == 0)) {
|
||||
Bitmap bitmap = TransitionUtils.createDrawableBitmap(d);
|
||||
Bitmap bitmap = TransitionUtils.createDrawableBitmap(d, imageView);
|
||||
if (bitmap != null) {
|
||||
Bundle bundle = new Bundle();
|
||||
if (bitmap.getConfig() != Bitmap.Config.HARDWARE) {
|
||||
|
||||
@@ -115,7 +115,7 @@ public class TransitionUtils {
|
||||
/**
|
||||
* Get a copy of bitmap of given drawable, return null if intrinsic size is zero
|
||||
*/
|
||||
public static Bitmap createDrawableBitmap(Drawable drawable) {
|
||||
public static Bitmap createDrawableBitmap(Drawable drawable, View hostView) {
|
||||
int width = drawable.getIntrinsicWidth();
|
||||
int height = drawable.getIntrinsicHeight();
|
||||
if (width <= 0 || height <= 0) {
|
||||
@@ -128,7 +128,7 @@ public class TransitionUtils {
|
||||
}
|
||||
int bitmapWidth = (int) (width * scale);
|
||||
int bitmapHeight = (int) (height * scale);
|
||||
final RenderNode node = RenderNode.create("TransitionUtils", null);
|
||||
final RenderNode node = RenderNode.create("TransitionUtils", hostView);
|
||||
node.setLeftTopRightBottom(0, 0, width, height);
|
||||
node.setClipToBounds(false);
|
||||
final DisplayListCanvas canvas = node.start(width, height);
|
||||
@@ -172,7 +172,7 @@ public class TransitionUtils {
|
||||
matrix.postTranslate(-bounds.left, -bounds.top);
|
||||
matrix.postScale(scale, scale);
|
||||
|
||||
final RenderNode node = RenderNode.create("TransitionUtils", null);
|
||||
final RenderNode node = RenderNode.create("TransitionUtils", view);
|
||||
node.setLeftTopRightBottom(0, 0, bitmapWidth, bitmapHeight);
|
||||
node.setClipToBounds(false);
|
||||
final DisplayListCanvas canvas = node.start(bitmapWidth, bitmapHeight);
|
||||
|
||||
Reference in New Issue
Block a user