mirror of
https://github.com/facebook/react-native.git
synced 2025-11-01 09:14:26 +00:00
Summary: As part of https://github.com/facebook/react-native/issues/34425, `objectFit` value of `'none'` needs to be supported for the Image component. In order to support this, a new value must also be added to support the equivalent in `resizeMode`. With this new value, the image will not be resized at all and keeping it in the initial position within a container (see in the screenshots). In this PR the support is added for both Fabric and Paper. ## Changelog: [GENERAL] [ADDED] - image `resizeMode` and `objectFit` support for `'none'`. Pull Request resolved: https://github.com/facebook/react-native/pull/47110 Test Plan: Using the `rn-tester`, there is a new image example for both `resizeMode` and `objectFit`. See below the results for both Android and iOS: <details> <summary>Fabric screenshots</summary> **Android:** | Resize Mode | Object Fit | | --------- | ---------- | |  |  | **iOS:** | Resize Mode | Object Fit | | --------- | ---------- | |  |  | </details> <details> <summary>Paper screenshots</summary> **Android:** | Resize Mode | Object Fit | | --------- | ---------- | |  |  | **iOS:** | Resize Mode | Object Fit | | --------- | ---------- | |  |  | </details> Reviewed By: fabriziocucci Differential Revision: D65420002 Pulled By: javache fbshipit-source-id: df3bc8fc931b88cde5fe51d89685bf327e30ed9f
40 lines
1.1 KiB
JavaScript
40 lines
1.1 KiB
JavaScript
/**
|
|
* Copyright (c) Meta Platforms, Inc. and affiliates.
|
|
*
|
|
* This source code is licensed under the MIT license found in the
|
|
* LICENSE file in the root directory of this source tree.
|
|
*
|
|
* @flow strict
|
|
* @format
|
|
*/
|
|
|
|
'use strict';
|
|
|
|
/**
|
|
* ImageResizeMode defines valid values for different image resizing modes set
|
|
* via the `resizeMode` style property on `<Image>`.
|
|
*/
|
|
export type ImageResizeMode =
|
|
// Resize by scaling down such that it is completely visible, if bigger than
|
|
// the area of the view. The image will not be scaled up.
|
|
| 'center'
|
|
|
|
// Resize such that it will be completely visible, contained within the frame
|
|
// of the View.
|
|
| 'contain'
|
|
|
|
// Resize such that the entire area of the view is covered by the image,
|
|
// potentially clipping parts of the image.
|
|
| 'cover'
|
|
|
|
// Resize by repeating to cover the frame of the View. The image will keep its
|
|
// size and aspect ratio.
|
|
| 'repeat'
|
|
|
|
// Resize by stretching it to fill the entire frame of the view without
|
|
// clipping. This may change the aspect ratio of the image, distorting it.
|
|
| 'stretch'
|
|
|
|
// The image will not be resized at all.
|
|
| 'none';
|