as

Settings
Sign out
Notifications
Alexa
Amazonアプリストア
AWS
ドキュメント
Support
Contact Us
My Cases
開発
設計と開発
公開
リファレンス
サポート

expo-image

expo-image

@amazon-devices/expo-imageは、React NativeおよびExpoを対象に、クロスプラットフォーム対応のパフォーマンスに優れた画像コンポーネントを提供します。このライブラリでは、画像のプレースホルダーの軽量表現であるBlurHash(英語のみ)とThumbHash(英語のみ)がサポートされます。また、ソースが変更されたときの画像間の遷移もサポートされます。@amazon-devices/expo-imageには、CSSのobject-fitプロパティとobject-positionプロパティが実装されています。

インストール

  1. package.jsonファイルにJavaScriptライブラリの依存関係を追加します。

    クリップボードにコピーしました。

     dependencies: {
         ...
         "@amazon-devices/expo-image": "~2.0.0",
     }
    
  2. npm installコマンドを使用して、依存関係を再インストールします。

使用例

以下の例は、thumbhashプレースホルダーと複数のソースを含む画像を示しています。

クリップボードにコピーしました。

import React from 'react';
import {StyleSheet, View} from 'react-native';
import {Image} from '@amazon-devices/expo-image';

export const App = () => {
  return (
    <View style={styles.container}>
      <Image
        source={[
          'https://images.pexels.com/photos/842711/pexels-photo-842711.jpeg',
          'https://climateforlife.pl/wp-content/uploads/2023/10/panda.png',
        ]}
        style={styles.image}
        placeholder="thumbhash:/1QcSHQRnh493V4dIh4eXh1h4kJUI"
      />
    </View>
  );
};

const styles = StyleSheet.create({
  container: {
    backgroundColor: 'white',
    flex: 1,
  },
  image: {
    width: 300,
    aspectRatio: 1,
  },
});

APIリファレンス

このライブラリの情報、APIリファレンス、その他の詳細については、Expo公式ドキュメントのexpo-imageのページ(英語のみ)を参照してください。

コンポーネント

コンポーネント 説明
Image 画像を読み込んでレンダリングするクロスプラットフォームのReactコンポーネント。

Imageのプロパティ

プロパティ 説明
accessibilityLabel ユーザーが画像を操作したときにスクリーンリーダーが読み上げるテキストです。ウェブではaltタグが設定され、ウェブクローラーとリンクトラバーサルに使用されます。
accessible trueの場合、ビューがアクセシビリティ要素であることを示します。ビューがアクセシビリティ要素の場合、その子要素は、単一の選択可能なコンポーネントとしてグループ化されます。
allowDownscaling ビューコンテナのサイズに合わせて画像を縮小するかどうかを示します。デフォルトはtrueです。falseに設定すると、特に大規模なアセットを扱う場合に、アプリのパフォーマンスに悪影響を及ぼす可能性があります。ただし、falseに設定することで、画像のサイズ変更がスムーズになり、エンドユーザーは常に利用可能な最高品質のアセットにアクセスできるようになります。
alt ユーザーが画像を操作したときにスクリーンリーダーが読み上げるテキストです。ウェブではaltタグが設定され、ウェブクローラーとリンクトラバーサルに使用されます。これはaccessibilityLabelのエイリアスです。
blurRadius ぼかしの半径をポイント単位で表します。0は、ぼかし効果が適用されないことを意味します。この効果はプレースホルダーには適用されません。
contentFit コンテナに合わせて画像のサイズをどのように変更するかを決定します。このプロパティでは、「縦横比を維持する」や「可能な限りスペースを埋めるように拡大する」など、画像をコンテナ全体に表示する方法をさまざまに指定できます。CSSのobject-fitプロパティに相当します。
contentPosition contentFitと同時に使用され、画像をどのように配置するかを、画像のコンテナ内のx/y座標で指定します。CSSのobject-positionプロパティに相当します。
defaultSource 画像ソースのデフォルト値。警告: 非推奨。React NativeのImageのdefaultSourceに対する互換性を提供します。代わりにplaceholderプロパティを使用してください。
fadeDuration 警告: 非推奨。React NativeのImageのfadeDurationに対する互換性を提供します。代わりにtransitionを使用して時間を指定してください。
focusable このビューを非タッチ入力デバイスでフォーカス可能にするかどうかを指定します。たとえば、ハードウェアキーボードによるフォーカスを受け取るかどうかを示します。
loadingIndicatorSource 警告: 非推奨。React NativeのImageのloadingIndicatorSourceに対する互換性を提供します。代わりにplaceholderプロパティを使用してください。
onError 画像の取得でエラーが発生したときに呼び出されます。
onLoad 画像の読み込みが正常に完了したときに呼び出されます。
onLoadEnd 画像の読み込みが成功または失敗したときに呼び出されます。
onLoadStart 画像の読み込みが開始されたときに呼び出されます。
placeholder 正しい画像の読み込み中にまだ画像が表示されていないときや、ソースが設定されていない場合に表示する画像。
priority 読み込みを完了する優先順位。複数の読み込みが一度にキューに追加された場合、優先順位の高い読み込みが最初に開始されます。優先順位はベストエフォートとして扱われ、読み込みが開始または終了する順序を保証するものではありません。
recyclingKey このプロパティを変更すると、最終的な画像の読み込みとレンダリングが行われる前に、画像ビューのコンテンツが空白またはプレースホルダーにリセットされます。これはあらゆる種類のリサイクルビュー(FlashListなど)で特に役立ち、新しいソースが完全に読み込まれていないときに以前のソースが表示されるのを防ぐことができます。
resizeMode 警告: 非推奨。React NativeのImageのresizeModeに対する互換性を提供します。"repeat"オプションはサポートされないことに注意してください。代わりに、より強力なcontentFitプロパティとcontentPositionプロパティを使用してください。
source 画像のソース。リモートURL、ローカルファイルリソース、require()関数の結果の数値のいずれかを指定できます。ソースの配列を指定すると、コンテナのサイズに最も適していて、かつ画面スケールに最も近いソースが選択されます。この場合は、widthheightscaleの各プロパティを指定することが重要です。
tintColor テンプレート画像(不透明度だけが重要となるビットマップ画像)の色付けに使用される色。この色はすべての不透明ピクセルに適用され、画像の形状に取り込まれます。この効果はプレースホルダーには適用されません。
transition 画像ソースを切り替えたときに、画像ビューのコンテンツをどのように遷移させるかを記述します。数値として指定した場合、「cross-dissolve」効果の時間をミリ秒単位で表します。

メソッド

メソッド 説明
clearDiskCache ディスクキャッシュからすべての画像を非同期的に消去します。
clearMemoryCache メモリに格納されているすべての画像を非同期的に消去します。
prefetch 指定されたURLの画像を事前に読み込み、後で画像ビューで使用できるようにします。事前に読み込まれた画像は常にディスクにキャッシュされるため、disk(デフォルト)またはmemory-diskキャッシュポリシーを使用する必要があります。

実装の詳細

  • SVGおよびアニメーションのソースはサポートされません。
  • onProgressはサポートされません。
  • onLoadEnd, onLoadStart, onLoad sometimes don't get invoked on Vega

サポートされているバージョン

パッケージのバージョン ベース @amazon-devices/react-native-kepler version
2.0.x 1.6.0 2.0.x

関連リソース

その他のライブラリについては、サポート対象のサードパーティのライブラリとサービスを参照してください。


Last updated: 2025年9月30日