Image List
Alexa Image Listテンプレート(AlexaImageList)は、画像とテキストのスクロールリストを表示します。AlexaImageListは全画面テンプレートで、必要に応じてヘッダー、フッター、背景を表示できます。リストに表示する画像ベースの項目セットを提供し、リストの外観を設定できます。たとえば、区切り線を挿入したり、項目に番号を付けるかどうかを指定したりできます。ユーザーがリストから項目を選択したときに実行するコマンドを指定することもできます。
互換性
AlexaImageListは、alexa-viewport-profilesパッケージのすべての標準Viewportプロファイルで動作するように設計されています。次のプロファイルに対応しています。
- すべての円形デバイスプロファイル
- すべての横長デバイスプロファイル
- すべての縦長デバイスプロファイル
- すべてのモバイルプロファイル
- すべてのテレビプロファイル
サポートされていないViewportでAlexaImageListを使用すると、予期しない結果になることがあります。Viewportプロファイルの詳細については、Viewportプロファイルを参照してください。
alexa-layoutsパッケージをインポートする
AlexaImageListを使用するには、alexa-layoutsパッケージをインポートします。
alexa-layoutsパッケージの最新バージョンは1.7.0です。AlexaImageListはバージョン1.1.0で導入されました。
AlexaImageListのパラメーター
type以外のパラメーターはすべてオプションです。
| 名前 | 型 | デフォルト | 説明 | ウィジェットのサポート | 追加されたバージョン |
|---|---|---|---|---|---|
|
|
文字列 |
|
背景画像または背景ビデオの配置を指定します。 |
サポートされません |
1.1.0 |
|
|
ブール値 |
|
|
サポートされません |
1.1.0 |
|
|
— |
背景色として使用する色です。 |
サポートされません |
1.1.0 | |
|
|
ブール値 |
|
|
サポートされません |
1.1.0 |
|
|
文字列 |
— |
背景の画像ソースのURLです。 |
サポートされません |
1.1.0 |
|
|
ブール値 |
|
|
サポートされません |
1.1.0 |
|
|
文字列 |
|
背景画像または背景ビデオのサイズを調整する方法を指定します。 |
サポートされません |
1.1.0 |
|
|
— |
背景ビデオのソースです。Videoコンポーネントの |
サポートされません |
1.1.0 | |
|
|
文字列 |
|
サポートされません |
1.1.0 | |
|
|
配列 |
— |
このテンプレートにバインドするentityデータの配列です。 |
サポートされません |
1.2.0 |
|
|
文字列 |
— |
アトリビューションの画像ソースのURLです。 |
サポートされません |
1.1.0 |
|
|
数値 |
|
ヘッダーのアトリビューションテキストとアトリビューション画像のopacityです。0~1の間の数値を設定します。 |
サポートされません |
1.3.0 |
|
|
文字列 |
— |
ヘッダーに表示するアトリビューションのテキストです。 |
サポートされません |
1.1.0 |
|
|
ブール値 |
|
|
サポートされません |
1.1.0 |
|
|
文字列 |
|
スクリーンリーダーを使用するユーザーに、戻るボタンについて説明するアクセシビリティラベルです。 |
サポートされません |
1.1.0 |
|
|
|
ユーザーが戻るボタンを選択したときに実行するコマンドです。 |
サポートされません |
1.1.0 | |
|
|
文字列 |
|
(任意)ヘッダーの背景色として使用する色の値です。 |
サポートされません |
1.1.0 |
|
|
ブール値 |
|
|
サポートされません |
1.1.0 |
|
|
文字列 |
— |
ヘッダーに表示する第1テキストです。 |
サポートされません |
1.1.0 |
|
|
ブール値 |
|
各「水平方向の項目」の下/右に表示される、次のコンテンツと区別するための区切り線の非表示を切り替えます。 |
サポートされません |
1.6.0 |
|
|
ブール値 |
|
|
サポートされません |
1.1.0 |
|
|
文字列 |
— |
フッターに表示するヒントテキストです。正しいウェイクワードをヒントに追加するには、 |
サポートされません |
1.1.0 |
|
|
文字列 |
ヒントテキストの説明文字列です。ユーザーがこのコンポーネントを選択すると、ボイスオーバーでこの文字列が読み上げられます。 |
サポートされません |
1.7.0 | |
|
|
文字列 |
|
|
サポートされません |
1.1.0 |
|
|
文字列 |
|
リスト内のすべての項目で画像のバウンディングボックスに使用するアスペクト比です。指定できる値は、square、round、standard_landscape、standard_portrait、poster_landscape、poster_portrait、widescreenです。このプロパティは、 |
サポートされません |
1.1.0 |
|
|
ブール値 |
|
|
サポートされません |
1.1.0 |
|
|
— |
|
サポートされません |
1.4.0 | |
|
|
ブール値 |
|
|
サポートされません |
1.1.0 |
|
|
ブール値 |
|
|
サポートされません |
1.1.0 |
|
|
ブール値 |
|
|
サポートされません |
1.1.0 |
|
|
文字列 |
|
|
サポートされません |
1.1.0 |
|
|
ブール値 |
|
|
サポートされません |
1.3.0 |
|
|
文字列 |
|
テンプレートに表示されるテキストの言語です。この言語によって、テキストに使用されるデフォルトのフォントが決まります。たとえば、 |
サポートされません |
1.4.0 |
|
|
文字列 |
|
コンテンツのレイアウト方向を指定します。このプロパティは、 |
サポートされません |
1.4.0 |
|
|
文字列 |
— |
リストとして使用される |
サポートされません |
1.2.0 |
|
|
リストに表示する項目の配列です。各項目は、 |
サポートされません |
1.1.0 | ||
|
|
— |
|
サポートされません |
1.1.0 | |
|
|
任意 |
— |
読み上げ項目の配列です。 |
サポートされません |
1.2.0 |
|
|
文字列 |
|
色のテーマをダークまたはライトに設定します。選択されたテーマによってテンプレートの色が制御されます。 |
サポートされません |
1.1.0 |
|
|
文字列 |
— |
常に |
サポートされません |
1.1.0 |
|
|
文字列 |
|
ビデオの再生時に再生するオーディオトラックです。指定できる値は、 |
サポートされません |
1.1.0 |
|
|
ブール値 |
|
|
サポートされません |
1.1.0 |
リスト項目を指定する
AlexaImageListテンプレートは、listItemsプロパティに項目の配列が設定されることを想定しています。各項目は、AlexaImageListItemレスポンシブ対応コンポーネントで定義されているものと同じプロパティを持つオブジェクトです。
次の例は、imageListDataというデータソース内の項目の配列を示しています。
{
"imageListData": {
"listItemsToShow": [
{
"primaryText": "1番目のリスト項目",
"secondaryText": "第2テキスト",
"imageSource": "https://d2o906d8ln7ui1.cloudfront.net/images/md_gruyere.png",
"imageProgressBarPercentage": 90,
"imageShowProgressBar": false,
"ratingSlotMode": "multiple",
"ratingNumber": 2.87,
"ratingText": "(206件の評価)"
},
{
"primaryText": "2番目のリスト項目",
"secondaryText": "第2テキスト",
"tertiaryText": "第3テキスト",
"imageSource": "https://d2o906d8ln7ui1.cloudfront.net/images/md_gorgonzola.png",
"providerText": "プロバイダーテキスト",
"imageProgressBarPercentage": 50,
"ratingSlotMode": "multiple",
"ratingNumber": 4.5,
"ratingText": "(500件の評価)"
},
{
"primaryText": "画像なし、デフォルトを使用",
"secondaryText": "第2テキスト",
"ratingSlotMode": "multiple",
"ratingNumber": 2,
"ratingText": "(50件の評価)"
},
{
"primaryText": "4番目のリスト項目",
"secondaryText": "進行状況バーなし",
"imageSource": "https://d2o906d8ln7ui1.cloudfront.net/images/tl_brie.png",
"ratingSlotMode": "multiple",
"ratingNumber": 5,
"ratingText": "(452件の評価)"
},
{
"primaryText": "5番目のリスト項目",
"secondaryText": "背景にぼかしを適用",
"imageSource": "https://d2o906d8ln7ui1.cloudfront.net/images/MollyforBT7.png",
"ratingSlotMode": "multiple",
"ratingNumber": 0,
"ratingText": "(206件の評価)"
},
{
"primaryText": "6番目のリスト項目(折り返しのある長いテキスト)",
"secondaryText": "切り詰められる長い第2テキスト",
"imageSource": "https://d2o906d8ln7ui1.cloudfront.net/images/sm_blue.png",
"ratingSlotMode": "multiple",
"ratingNumber": 0,
"ratingText": "(206件の評価)"
}
]
}
}
次に、${imageListData.listItemsToShow}式を使用して、この配列をlistItemsプロパティにバインドします。
{
"type": "AlexaImageList",
"listItems": "${imageListData.listItemsToShow}",
"defaultImageSource": "https://d2o906d8ln7ui1.cloudfront.net/images/BT7_Background.png",
"imageBlurredBackground": true,
"primaryAction": {
"type": "SendEvent",
"arguments": [
"ListItemSelected",
"${ordinal}"
]
}
}
リスト項目に指定できるパラメーターは、AlexaImageListItemのバージョンによって異なります。たとえば、評価を表示するプロパティには、alexa-layoutsパッケージのバージョン1.2.0以降が必要です。すべてのプロパティについては、AlexaImageListItemを参照してください。
リスト項目のデフォルトを設定する
AlexaImageListテンプレートには、AlexaImageListItemのプロパティに対応するプロパティが含まれています。これらは、リスト項目のプロパティのデフォルト値を設定するために使用されます。
デフォルトには次の2種類があります。
-
個々の項目で設定またはオーバーライドできるデフォルト -
AlexaImageListは、個々の項目に値が指定されている場合はその値を使用し、それ以外の場合はAlexaImageListに指定された値を使用します。たとえば、リスト全体に対して
imageScaleをbest-fitに設定し、リストの1つの項目でbest-fillにオーバーライドできます。 -
常にリスト内のすべての項目に適用されるデフォルト -
AlexaImageListは、常にこれらのプロパティに対してAlexaImageListで指定された値を使用します。個々の項目で対応するプロパティに値を設定しても無視されます。たとえば、
imageAspectRatioはリスト全体に対して設定する必要があります。一部の項目を正方形として表示し、一部の項目を円として表示するリストは作成できません。リスト項目のimageAspectRatioの値は無視されます。
次の表は、デフォルトとして使用されるプロパティの一覧です。
| プロパティ | 項目でオーバーライド可能 |
|---|---|
defaultImageSource |
× |
imageAlignment |
◯ |
imageAspectRatio |
× |
imageBlurredBackground |
◯ |
imageHeight |
× |
imageHideScrim |
◯ |
ImageMetadataPrimacy |
× |
imageRoundedCorner |
◯ |
imageScale |
◯ |
imageShadow |
◯ |
primaryAction |
◯ |
各プロパティの詳細については、AlexaImageListItemを参照してください。
各リスト項目のアクションを指定する
AlexaImageListは対話型です。ユーザーはリストの項目を選択できます。primaryActionプロパティに、ユーザーが項目を選択したときに実行するコマンドを設定します。
AlexaImageListコンポーネントでprimaryActionを設定すると、AlexaImageListはリストの各項目にこのコマンドを渡します。
個々のリスト項目でコマンドをオーバーライドするには、リスト項目自体にprimaryActionプロパティを設定します。
次の例は、SendEventコマンドを使用してスキルにUserEventリクエストを送信する方法を示しています。SendEvent.arguments配列の一部として、選択された項目を表す番号を渡します。
{
"primaryAction": {
"type": "SendEvent",
"arguments": [
"ListItemSelected",
"${ordinal}"
]
}
}
AlexaImageListにSpeakListコマンドを使用する
SpeakListコマンドを使用して項目のリストを読み上げるには、AlexaImageListでspeechItemsパラメーターを使用します。speechItemsプロパティに項目の配列を設定します。
SpeakListコマンドでは、読み上げる各項目にspeechプロパティが必要です。speechプロパティには、ssmlToSpeechかtextToSpeechのいずれかのトランスフォーマーの出力を設定する必要があります。このため、AlexaImageListでSpeakListを使用するには、次の手順を実行する必要があります。
- オブジェクト型のデータソースを使用して、読み上げる項目の配列を設定する。このデータソース内で、読み上げ項目の配列を処理するように
ssmlToSpeechまたはtextToSpeechトランスフォーマーを設定します。 AlexaImageListのspeechItemsプロパティを読み上げ項目リストにバインドする。- リストで
SpeakListコマンドを呼び出す。
読み上げ項目リストのデータソースを設定する
- ドキュメントで使用するオブジェクト型のデータソースを作成します。
-
データソースで、読み上げる項目の配列をデータソースの
propertiesオブジェクト内にプロパティとして追加します。次の例は、
listItemsToShowという配列を含むobjectデータソースを示しています。項目の配列はpropertiesオブジェクトに含まれています。{ "imageListData": { "type": "object", "objectId": "imageListDataId", "properties": { "listItemsToShow": [ { "primaryText": "1番目のリスト項目", "imageSource": "https://d2o906d8ln7ui1.cloudfront.net/images/md_gruyere.png" }, { "primaryText": "2番目のリスト項目", "imageSource": "https://d2o906d8ln7ui1.cloudfront.net/images/md_gorgonzola.png" } ] } } } -
ssmlToSpeechまたはtextToSpeechトランスフォーマーを次のように設定します。inputPath- 読み上げ項目の配列です。トランスフォーマーは、指定されたパスがpropertiesオブジェクト内に存在するものと想定しています。したがって、パスにpropertiesを含める必要はありません。配列の項目がオブジェクトの場合は、そのオブジェクト内でテキストまたはSSMLを格納している特定のフィールドを指定します。outputName- 文字列"speech"を設定します。AlexaImageListテンプレートは、項目のリストを処理するときに"speech"という文字列を含めるため、この文字列を正確に指定する必要があります。transformer- 配列の項目の形式に応じて、ssmlToSpeechかtextToSpeechのいずれかを指定します。
次の例は、
listItemsToShow配列の各項目のprimaryTextフィールドを処理するようにtextToSpeechトランスフォーマーを設定します。{ "transformers": [ { "inputPath": "listItemsToShow[*].primaryText", "outputName": "speech", "transformer": "textToSpeech" } ] }
speechItemsプロパティを読み上げ項目リストにバインドする
APLドキュメントで、データバインディング式を使用してAlexaImageListのspeechItemsプロパティを読み上げ項目リストにバインドします。
前の例を引き続き使用すると、式は${imageListData.properties.listItemsToShow}となります。この例では、表示と読み上げの両方に同じprimaryTextを使用します。
{
"type": "AlexaImageList",
"listItems": "${imageListData.properties.listItemsToShow}",
"speechItems": "${imageListData.properties.listItemsToShow}"
}
リストでSpeakListコマンドを実行する
speechItemsに指定した項目をAlexaで読み上げるには、SpeakListコマンドを実行します。たとえば、onMountハンドラーからコマンドを実行して、デバイスがドキュメントを表示した後に項目を読み上げることができます。
-
AlexaImageListのlistIdパラメーターにドキュメント固有のIDを割り当てます。SpeakListを実行するには、このIDを指定する必要があります。{ "type": "AlexaImageList", "listId": "myImageListWithItemsToSpeak", "listItems": "${imageListData.properties.listItemsToShow}", "speechItems": "${imageListData.properties.listItemsToShow}" } -
SpeakListコマンドのcomponentIdプロパティに、listIdに指定したIDを設定します。次の例は、
onMountハンドラーでコマンドを呼び出します。デバイスがドキュメントを表示した後にAlexaが項目を読み上げます。{ "onMount": [ { "type": "SpeakList", "delay": 5000, "componentId": "myImageListWithItemsToSpeak", "start": 0, "count": "${imageListData.properties.listItemsToShow.length}", "minimumDwellTime": 1000, "align": "center" } ] }
ドキュメントとデータソースの例全体を以下に示します。デバイスがドキュメントを表示した後、Alexaはリスト内にある6つの項目の第1テキストをそれぞれ読み上げます。SpeakListコマンドには5秒間の遅延が含まれているため、Alexaはリストの項目を読み上げる前に、スキル応答の通常の音声を読み上げることができます。
AlexaImageListとdynamicIndexListデータソース
AlexaImageListテンプレートはSequenceを使用します。つまり、dynamicIndexListデータソースを使用できます。dynamicIndexListデータソースを使用すると、次のような処理が可能になります。
- ユーザーがコンテンツをスクロールするにつれて、大きいリストを段階的に表示する(遅延読み込み)。
- 既に表示されているデータソースの項目を更新する。新しいドキュメントを送信することなく画面上の値を変更できます。
AlexaImageListでdynamicIndexListデータソースを使用するには
- dynamicIndexListデータソースに記載されている
dynamicIndexListの構造に従います。この構造で定義されていないほかのプロパティは含めないでください。 - リスト項目オブジェクトをデータソースの
items配列に追加します。 - データソースを
AlexaImageListのlistItemsプロパティにバインドします。このバインドは、カスタムレイアウトのSequenceのdataプロパティにデータソースをバインドすることと同じです。
以下は、dynamicIndexListデータソースを使用するAlexaImageListを含むドキュメントの例です。
dynamicIndexListデータソースを定義する方法の詳細については、dynamicIndexListデータソースを参照してください。
データソースの管理に使用するディレクティブとリクエストの詳細については、Alexa.Presentation.APLインターフェースのリファレンスを参照してください。
AlexaImageListの例
この例では、リスト項目を選択すると、arguments配列に"ListItemSelected"とリスト項目の番号を含むUserEventリクエストが送信されます。このイベントをテストするには、例をスキルにコピーします。
関連トピック
最終更新日: 2025 年 11 月 04 日