mirror of
https://github.com/zhigang1992/react-native.git
synced 2026-04-07 17:37:34 +08:00
Revert "Android support for perspective transform"
Summary:This reverts "Android support for perspective transform": 3e760f48c5, PR https://github.com/facebook/react-native/pull/6159, D3053532.
It broke negative scale transforms: https://github.com/facebook/react-native/issues/6622
Reviewed By: bestander
Differential Revision: D3120627
fb-gh-sync-id: 727528d39c049180fe4862d006f2089c997afd45
fbshipit-source-id: 727528d39c049180fe4862d006f2089c997afd45
This commit is contained in:
committed by
Facebook Github Bot 3
parent
928fd0d605
commit
ae3dad86c5
@@ -6,10 +6,8 @@ import android.graphics.Color;
|
||||
import android.os.Build;
|
||||
import android.view.View;
|
||||
|
||||
import com.facebook.react.bridge.ReadableArray;
|
||||
import com.facebook.react.bridge.ReadableMap;
|
||||
import com.facebook.react.uimanager.annotations.ReactProp;
|
||||
import com.facebook.react.uimanager.DisplayMetricsHolder;
|
||||
|
||||
/**
|
||||
* Base class that should be suitable for the majority of subclasses of {@link ViewManager}.
|
||||
@@ -27,7 +25,6 @@ public abstract class BaseViewManager<T extends View, C extends LayoutShadowNode
|
||||
private static final String PROP_DECOMPOSED_MATRIX_SCALE_Y = "scaleY";
|
||||
private static final String PROP_DECOMPOSED_MATRIX_TRANSLATE_X = "translateX";
|
||||
private static final String PROP_DECOMPOSED_MATRIX_TRANSLATE_Y = "translateY";
|
||||
private static final String PROP_DECOMPOSED_MATRIX_PERSPECTIVE = "perspective";
|
||||
private static final String PROP_OPACITY = "opacity";
|
||||
private static final String PROP_ELEVATION = "elevation";
|
||||
private static final String PROP_RENDER_TO_HARDWARE_TEXTURE = "renderToHardwareTextureAndroid";
|
||||
@@ -35,8 +32,6 @@ public abstract class BaseViewManager<T extends View, C extends LayoutShadowNode
|
||||
private static final String PROP_ACCESSIBILITY_COMPONENT_TYPE = "accessibilityComponentType";
|
||||
private static final String PROP_ACCESSIBILITY_LIVE_REGION = "accessibilityLiveRegion";
|
||||
private static final String PROP_IMPORTANT_FOR_ACCESSIBILITY = "importantForAccessibility";
|
||||
private static final int PERSPECTIVE_ARRAY_INVERTED_CAMERA_DISTANCE_INDEX = 2;
|
||||
private static final float CAMERA_DISTANCE_NORMALIZATION_MULTIPLIER = 5;
|
||||
|
||||
// DEPRECATED
|
||||
private static final String PROP_ROTATION = "rotation";
|
||||
@@ -169,20 +164,6 @@ public abstract class BaseViewManager<T extends View, C extends LayoutShadowNode
|
||||
(float) matrix.getDouble(PROP_DECOMPOSED_MATRIX_SCALE_X));
|
||||
view.setScaleY(
|
||||
(float) matrix.getDouble(PROP_DECOMPOSED_MATRIX_SCALE_Y));
|
||||
|
||||
if (matrix.hasKey(PROP_DECOMPOSED_MATRIX_PERSPECTIVE)) {
|
||||
ReadableArray perspectiveArray = matrix.getArray(PROP_DECOMPOSED_MATRIX_PERSPECTIVE);
|
||||
if (perspectiveArray.size() > PERSPECTIVE_ARRAY_INVERTED_CAMERA_DISTANCE_INDEX) {
|
||||
float cameraDistance = (float)(-1 / perspectiveArray.getDouble(PERSPECTIVE_ARRAY_INVERTED_CAMERA_DISTANCE_INDEX));
|
||||
float scale = DisplayMetricsHolder.getScreenDisplayMetrics().density;
|
||||
|
||||
// The following converts the matrix's perspective to a camera distance
|
||||
// such that the camera perspective looks the same on Android and iOS
|
||||
float normalizedCameraDistance = scale * cameraDistance * CAMERA_DISTANCE_NORMALIZATION_MULTIPLIER;
|
||||
|
||||
view.setCameraDistance(normalizedCameraDistance);
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
private static void resetTransformMatrix(View view) {
|
||||
@@ -194,4 +175,4 @@ public abstract class BaseViewManager<T extends View, C extends LayoutShadowNode
|
||||
view.setScaleX(1);
|
||||
view.setScaleY(1);
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
Reference in New Issue
Block a user