【React Native】文件翻譯閱讀紀錄 - Components(組件) - Image

by - 上午9:00

Facebook Open Source React Native



Image

React組件,用於顯示不同類型的圖像,包括網絡圖像,靜態資源,臨時本地圖像和本地磁盤中的圖像,例如相機膠卷。

此示例顯示從本地存儲中獲取和顯示圖像,以及從網絡中獲取圖像,甚至從“data:”uri方案中提供的數據。

請注意,對於網絡和數據圖像,您需要手動指定圖像的尺寸!
您還可以為圖像添加樣式:

Android 上的 GIF 和 WebP支持

在構建您自己的本機代碼時,Android上默認不支持GIF和WebP。

您需要在android / app / build.gradle中添加一些可選模塊,具體取決於您的應用程序的需求。
dependencies {
  // If your app supports Android versions before Ice Cream Sandwich (API level 14)
  compile 'com.facebook.fresco:animated-base-support:1.9.0'

  // For animated GIF support
  compile 'com.facebook.fresco:animated-gif:1.9.0'

  // For WebP support, including animated WebP
  compile 'com.facebook.fresco:animated-webp:1.9.0'
  compile 'com.facebook.fresco:webpsupport:1.9.0'

  // For WebP support, without animations
  compile 'com.facebook.fresco:webpsupport:1.9.0'
}

Props

Methods


參考

Props

style

ImageResizeMode是用於不同圖像大小調整模式的枚舉,通過Image組件上的resizeMode樣式屬性設置。值包含 containcoverstretchcenterrepeat.
TYPEREQUIRED
styleNo
  • borderTopRightRadius: number
  • backfaceVisibility: enum('visible', 'hidden')
  • borderBottomLeftRadius: number
  • borderBottomRightRadius: number
  • borderColorcolor
  • borderRadius: number
  • borderTopLeftRadius: number
  • backgroundColorcolor
  • borderWidth: number
  • opacity: number
  • overflow: enum('visible', 'hidden')
  • resizeMode: Object.keys(ImageResizeMode)
  • tintColorcolor
    將所有非透明像素的顏色更改為tintColor。
  • overlayColor: string (Android)
    當圖像具有圓角時,指定overlayColor將使角落中的剩餘空間填充純色。這在圓角的Android實現不支持的情況下很有用:
    • 某些調整大小模式,例如'包含'
    • 動畫GIF
    使用此道具的典型方法是將圖像顯示在純色背景上,並將overlayColor設置為與背景相同的顏色。

    有關如何在幕後工作的詳細信息,請參閱 http://frescolib.org/docs/rounded-corners-and-circles.html

blurRadius

blurRadius: 添加到圖像的模糊濾鏡的模糊半徑
TYPEREQUIRED
numberNo

onLayout

使用{nativeEvent:{layout:{x,y,width,height}}}調用mount和layout更改。
TYPEREQUIRED
functionNo

onLoad

加載成功完成時調用。
TYPEREQUIRED
functionNo

onLoadEnd

加載成功或失敗時調用。
TYPEREQUIRED
functionNo

onLoadStart

在加載開始時調用。
e.g., onLoadStart={(e) => this.setState({loading: true})}
TYPEREQUIRED
functionNo

resizeMode

確定當幀與原始圖像尺寸不匹配時如何調整圖像大小。
  • cover: 均勻縮放圖像(保持圖像的縱橫比),使圖像的尺寸(寬度和高度)等於或大於視圖的相應尺寸(減去填充)。
  • contain均勻縮放圖像(保持圖像的縱橫比),使圖像的尺寸(寬度和高度)等於或小於視圖的相應尺寸(減去填充)。

  • stretch: 獨立縮放寬度和高度,這可能會改變src的寬高比。
  • repeat: 重複圖像以覆蓋視圖的框架。圖像將保持其大小和縱橫比,除非它大於視圖,在這種情況下,它將被均勻縮小以使其包含在視圖中。
  • center: 沿著兩個維度在圖像中居中。如果圖像大於視圖,請將其均勻縮小以使其包含在視圖中。
TYPEREQUIRED
enum('cover', 'contain', 'stretch', 'repeat', 'center')No

source

圖像源(遠程URL或本地文件資源)。
此prop還可以包含多個遠程URL,與其寬度和高度一起指定,並且可能包含scale / other URI參數。然後,本機側將根據圖像容器的測量尺寸選擇要顯示的最佳uri。可以添加緩存屬性以控制聯網請求與本地緩存的交互方式。
目前支持的格式是 pngjpgjpegbmpgifwebp (Android only), psd (iOS only).
TYPEREQUIRED
ImageSourcePropTypeNo

loadingIndicatorSource

與source類似,此屬性表示用於呈現圖像的加載指示符的資源,在圖像準備好顯示之前顯示,通常在從網絡下載之後顯示。

TYPEREQUIRED
array of ImageSourcePropTypes, numberNo
可以接受返回的數字 require('./image.jpg')

onError

使用{nativeEvent:{error}}調用加載錯誤。
TYPEREQUIRED
functionNo

testID

UI自動化測試腳本中使用的此元素的唯一標識符。
TYPEREQUIRED
stringNo

resizeMethod

當圖像的尺寸與圖像視圖的尺寸不同時,應該用於調整圖像大小的機制。默認為 auto.
  • auto使用啟發式方法在調整大小和縮放之間進行選擇。
  • resize一種軟件操作,在解碼之前更改內存中的編碼圖像。當圖像比視圖大得多時,應該使用它來代替比例。
  • scale縮小或放大圖像。與調整大小相比,縮放更快(通常是硬件加速)並產生更高質量的圖像。如果圖像小於視圖,則應使用此選項。如果圖像略大於視圖,也應該使用它。
有關調整大小和擴展的更多詳細信息,請訪問  http://frescolib.org/docs/resizing.html.
TYPEREQUIREDPLATFORM
enum('auto', 'resize', 'scale')NoAndroid

accessibilityLabel

當用戶與圖像交互時屏幕閱讀器讀取的文本。
TYPEREQUIREDPLATFORM
nodeNoiOS

accessible

如果為true,則表示圖像是可訪問性元素。
TYPEREQUIREDPLATFORM
boolNoiOS

capInsets

調整圖像大小時,capInsets指定大小的角將保持固定大小,但圖像的中心內容和邊框將被拉伸。這對於創建可調整大小的圓角按鈕,陰影和其他可調整大小的資源非常有用。有關Apple官方文檔的更多信息。 official Apple documentation.
TYPEREQUIREDPLATFORM
object: {top: number, left: number, bottom: number, right: number}NoiOS

defaultSource

加載圖像源時顯示的靜態圖像。
TYPEREQUIREDPLATFORM
object, numberNoiOS
------------------------------
numberNoAndroid
如果傳遞一個對象,則一般形狀為{uri: string, width: number, height: number, scale: number}:
  • uri -表示圖像資源標識符的字符串,應該是本地文件路徑或靜態圖像資源的名稱(應包含在 require('./path/to/image.png')函數中) )。
  • widthheight - 如果在構建時已知,則可以指定,在這種情況下,這些將用於設置默認的<Image />組件尺寸。
  • scale - 用於指示圖像的比例因子。如果未指定,則默認為1.0,這意味著一個圖像像素等於一個顯示點/ DIP。
如果傳遞數字:
  • number - 由require('。/ image.jpg')返回的不透明類型。
Android: 它僅適用於發布版本,如果在DEBUG版本中沒有顯示任何內容,請不要擔心

onPartialLoad

在圖像的部分加載完成時調用。構成“部分負載”的定義是特定於加載器的,但這適用於漸進式JPEG負載。
TYPEREQUIREDPLATFORM
functionNoiOS

onProgress

使用 {nativeEvent: {loaded, total}}調用下載進度。
TYPEREQUIREDPLATFORM
functionNoiOS

fadeDuration

僅適用於Android。默認情況下,它是300毫秒。
TYPEREQUIREDPLATFORM
numberNoAndroid

Methods

getSize()

Image.getSize(uri, success, [failure]);
在顯示圖像之前檢索圖像的寬度和高度(以像素為單位)。如果無法找到圖像或無法下載,則此方法可能會失敗。

為了檢索圖像尺寸,可能首先需要加載或下載圖像,之後將對其進行高速緩存。這意味著原則上您可以使用此方法預加載圖像,但是它沒有針對該目的進行優化,並且將來可能以不完全加載/下載圖像數據的方式實現。預先加載圖像的正確支持方式將作為單獨的API提供。

不適用於靜態圖像資源。
參數:
NAMETYPEREQUIREDDESCRIPTION
uristringYes圖像的位置。
successfunctionYes成功找到圖像並檢索寬度和高度時將調用的函數。
failurefunctionNo如果出現錯誤(例如無法檢索圖像),將調用的函數。

prefetch()

Image.prefetch(url);
通過將遠程映像下載到磁盤緩存中來預取遠程映像以供以後使用
參數:
NAMETYPEREQUIREDDESCRIPTION
urlstringYes圖像的遠程位置。

abortPrefetch()

Image.abortPrefetch(requestId);
中止預取請求。Android的唯一。
參數:
NAMETYPEREQUIREDDESCRIPTION
requestIdnumberYesprefetch返回的Id()

queryCache()

Image.queryCache(urls);
執行緩存查詢。 返回從URL到緩存狀態的映射,例如“disk”或“memory”。 如果請求的URL不在映射中,則表示它不在緩存中。
參數:
NAMETYPEREQUIREDDESCRIPTION
urlsarrayYes要檢查緩存的圖像URL列表。

resolveAssetSource()

Image.resolveAssetSource(source);
將資產引用解析為具有uri,width和height屬性的對象。
參數:
NAMETYPEREQUIREDDESCRIPTION
sourcenumber, objectYes一個數字(require('。/ foo.png')返回的opaque類型)或ImageSource。
ImageSource是一個像{uri:'<http location ||的對象 文件路徑>'}





You May Also Like

0 意見