Merge "Switch to SharedElementCallback to HardwareBuffer"
This commit is contained in:
committed by
Android (Google) Code Review
commit
658cd3ccff
@@ -19,7 +19,6 @@ import android.content.Context;
|
||||
import android.content.res.Resources;
|
||||
import android.graphics.Bitmap;
|
||||
import android.graphics.ColorSpace;
|
||||
import android.graphics.GraphicBuffer;
|
||||
import android.graphics.Matrix;
|
||||
import android.graphics.RectF;
|
||||
import android.graphics.drawable.BitmapDrawable;
|
||||
@@ -48,8 +47,8 @@ import java.util.Map;
|
||||
public abstract class SharedElementCallback {
|
||||
private Matrix mTempMatrix;
|
||||
private static final String BUNDLE_SNAPSHOT_BITMAP = "sharedElement:snapshot:bitmap";
|
||||
private static final String BUNDLE_SNAPSHOT_GRAPHIC_BUFFER =
|
||||
"sharedElement:snapshot:graphicBuffer";
|
||||
private static final String BUNDLE_SNAPSHOT_HARDWARE_BUFFER =
|
||||
"sharedElement:snapshot:hardwareBuffer";
|
||||
private static final String BUNDLE_SNAPSHOT_COLOR_SPACE = "sharedElement:snapshot:colorSpace";
|
||||
private static final String BUNDLE_SNAPSHOT_IMAGE_SCALETYPE = "sharedElement:snapshot:imageScaleType";
|
||||
private static final String BUNDLE_SNAPSHOT_IMAGE_MATRIX = "sharedElement:snapshot:imageMatrix";
|
||||
@@ -186,8 +185,8 @@ public abstract class SharedElementCallback {
|
||||
if (bitmap.getConfig() != Bitmap.Config.HARDWARE) {
|
||||
bundle.putParcelable(BUNDLE_SNAPSHOT_BITMAP, bitmap);
|
||||
} else {
|
||||
GraphicBuffer graphicBuffer = bitmap.createGraphicBufferHandle();
|
||||
bundle.putParcelable(BUNDLE_SNAPSHOT_GRAPHIC_BUFFER, graphicBuffer);
|
||||
HardwareBuffer hardwareBuffer = bitmap.getHardwareBuffer();
|
||||
bundle.putParcelable(BUNDLE_SNAPSHOT_HARDWARE_BUFFER, hardwareBuffer);
|
||||
ColorSpace cs = bitmap.getColorSpace();
|
||||
if (cs != null) {
|
||||
bundle.putInt(BUNDLE_SNAPSHOT_COLOR_SPACE, cs.getId());
|
||||
@@ -235,7 +234,7 @@ public abstract class SharedElementCallback {
|
||||
View view = null;
|
||||
if (snapshot instanceof Bundle) {
|
||||
Bundle bundle = (Bundle) snapshot;
|
||||
GraphicBuffer buffer = bundle.getParcelable(BUNDLE_SNAPSHOT_GRAPHIC_BUFFER);
|
||||
HardwareBuffer buffer = bundle.getParcelable(BUNDLE_SNAPSHOT_HARDWARE_BUFFER);
|
||||
Bitmap bitmap = bundle.getParcelable(BUNDLE_SNAPSHOT_BITMAP);
|
||||
if (buffer == null && bitmap == null) {
|
||||
return null;
|
||||
@@ -246,8 +245,7 @@ public abstract class SharedElementCallback {
|
||||
if (colorSpaceId >= 0 && colorSpaceId < ColorSpace.Named.values().length) {
|
||||
colorSpace = ColorSpace.get(ColorSpace.Named.values()[colorSpaceId]);
|
||||
}
|
||||
bitmap = Bitmap.wrapHardwareBuffer(HardwareBuffer.createFromGraphicBuffer(buffer),
|
||||
colorSpace);
|
||||
bitmap = Bitmap.wrapHardwareBuffer(buffer, colorSpace);
|
||||
}
|
||||
ImageView imageView = new ImageView(context);
|
||||
view = imageView;
|
||||
|
||||
Reference in New Issue
Block a user