1e41f4b71Sopenharmony_ci# @ohos.file.PhotoPickerComponent (Photo Picker组件) 2e41f4b71Sopenharmony_ci 3e41f4b71Sopenharmony_ci应用可以在布局中嵌入Photo Picker组件,通过此组件,应用无需申请权限,即可访问公共目录中的图片或视频文件。仅包含读权限。 4e41f4b71Sopenharmony_ci应用嵌入组件后,用户可直接在Photo Picker组件中选择图片或视频文件。 5e41f4b71Sopenharmony_ci 6e41f4b71Sopenharmony_ci> **说明:** 7e41f4b71Sopenharmony_ci> 8e41f4b71Sopenharmony_ci> 该组件从API version 12开始支持。后续版本如有新增内容,则采用上角标单独标记该内容的起始版本。 9e41f4b71Sopenharmony_ci 10e41f4b71Sopenharmony_ci## 导入模块 11e41f4b71Sopenharmony_ci 12e41f4b71Sopenharmony_ci```ts 13e41f4b71Sopenharmony_ciimport { 14e41f4b71Sopenharmony_ci PhotoPickerComponent, PickerController, PickerOptions, 15e41f4b71Sopenharmony_ci DataType, BaseItemInfo, ItemInfo, PhotoBrowserInfo, AnimatorParams, 16e41f4b71Sopenharmony_ci MaxSelected, ItemType, ClickType, PickerOrientation, 17e41f4b71Sopenharmony_ci SelectMode, PickerColorMode, ReminderMode, MaxCountType, PhotoBrowserRange, PhotoBrowserUIElement, 18e41f4b71Sopenharmony_ci ItemsDeletedCallback, ExceedMaxSeletedCallback, CurrentAlbumDeletedCallback 19e41f4b71Sopenharmony_ci} from '@ohos.file.PhotoPickerComponent'; 20e41f4b71Sopenharmony_ci``` 21e41f4b71Sopenharmony_ci 22e41f4b71Sopenharmony_ci## 属性 23e41f4b71Sopenharmony_ci 24e41f4b71Sopenharmony_ci支持[通用属性](../apis-arkui/arkui-ts/ts-universal-attributes-size.md)。 25e41f4b71Sopenharmony_ci 26e41f4b71Sopenharmony_ci## PhotoPickerComponent 27e41f4b71Sopenharmony_ci 28e41f4b71Sopenharmony_ciPhotoPickerComponent({ 29e41f4b71Sopenharmony_ci pickerOptions?: PickerOptions, 30e41f4b71Sopenharmony_ci onSelect?: (uri: string) => void, 31e41f4b71Sopenharmony_ci onDeselect?: (uri: string) => void, 32e41f4b71Sopenharmony_ci onItemClicked?: (itemInfo: ItemInfo, clickType: ClickType) => boolean, 33e41f4b71Sopenharmony_ci onEnterPhotoBrowser?: (photoBrowserInfo: PhotoBrowserInfo) => boolean, 34e41f4b71Sopenharmony_ci onExitPhotoBrowser?: (photoBrowserInfo: PhotoBrowserInfo) => boolean, 35e41f4b71Sopenharmony_ci onPickerControllerReady?: () => void, 36e41f4b71Sopenharmony_ci onPhotoBrowserChanged?: (browserItemInfo: BaseItemInfo) => boolean, 37e41f4b71Sopenharmony_ci onSelectedItemsDeleted?: ItemsDeletedCallback, 38e41f4b71Sopenharmony_ci onExceedMaxSelected?: ExceedMaxSeletedCallback, 39e41f4b71Sopenharmony_ci onCurrentAlbumDeleted?: CurrentAlbumDeletedCallback, 40e41f4b71Sopenharmony_ci pickerController: PickerController 41e41f4b71Sopenharmony_ci}) 42e41f4b71Sopenharmony_ci 43e41f4b71Sopenharmony_ci应用可以在布局中嵌入PhotoPickerComponent组件,通过此组件,应用无需申请权限,即可访问公共目录中的图片或视频文件。 44e41f4b71Sopenharmony_ci 45e41f4b71Sopenharmony_ci> **说明:** 46e41f4b71Sopenharmony_ci> 如果当前PhotoPickerComponent组件嵌套在Tabs组件中使用,Tabs组件的左右滑动会与图片选择大图界面的左右滑动切换手势发生冲突。 47e41f4b71Sopenharmony_ci> 48e41f4b71Sopenharmony_ci> 可在进退大图的回调中设置Tabs组件是否支持滑动来规避,该问题将在后续版本修复。 49e41f4b71Sopenharmony_ci 50e41f4b71Sopenharmony_ci**装饰器类型**:@Component 51e41f4b71Sopenharmony_ci 52e41f4b71Sopenharmony_ci**原子化服务API**:从API version 12开始,该接口支持在原子化服务中使用。 53e41f4b71Sopenharmony_ci 54e41f4b71Sopenharmony_ci**系统能力**:SystemCapability.FileManagement.PhotoAccessHelper.Core 55e41f4b71Sopenharmony_ci 56e41f4b71Sopenharmony_ci**参数:** 57e41f4b71Sopenharmony_ci 58e41f4b71Sopenharmony_ci| 名称 | 类型 | 必填 | 装饰器说明 | 参数描述 | 59e41f4b71Sopenharmony_ci|-------------------------|----------------------------------------------------------------------------------|-----|------------|-----------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------| 60e41f4b71Sopenharmony_ci| pickerOptions | [PickerOptions](#pickeroptions) | 否 | - | picker参数信息。 | 61e41f4b71Sopenharmony_ci| onSelect | (uri: string) => void | 否 | - | 用户在Picker组件中勾选图片时产生的回调事件,将图片uri报给应用。 | 62e41f4b71Sopenharmony_ci| onDeselect | (uri: string) => void | 否 | - | 用户在Picker组件中取消勾选图片时产生的回调事件,同时也会将图片uri报给应用。 | 63e41f4b71Sopenharmony_ci| onItemClicked | (itemInfo: [ItemInfo](#iteminfo), clickType: [ClickType](#clicktype)) => boolean | 否 | - | 用户在picker组件中点击item产生的回调事件。<br>点击图片(缩略图item)时,返回值为true则勾选此图片,否则不响应勾选,uri不授权;点击相机item,返回值为true则拉起系统相机,否则不拉起相机,由应用自行处理。 | 64e41f4b71Sopenharmony_ci| onEnterPhotoBrowser | (photoBrowserInfo: [PhotoBrowserInfo](#photobrowserinfo)) => boolean | 否 | - | 点击进入大图时产生的回调事件,将大图相关信息报给应用。 | 65e41f4b71Sopenharmony_ci| onExitPhotoBrowser | (photoBrowserInfo: [PhotoBrowserInfo](#photobrowserinfo)) => boolean | 否 | - | 退出大图时产生的回调事件,将大图相关信息报给应用。 | 66e41f4b71Sopenharmony_ci| onPickerControllerReady | () => void | 否 | - | 当pickerController可用时产生的回调事件。<br>调用PickerController相关接口需在该回调后才能生效。 | 67e41f4b71Sopenharmony_ci| onPhotoBrowserChanged | (browserItemInfo: [BaseItemInfo](#baseiteminfo)) => boolean | 否 | - | 大图左右滑动时产生的回调事件,将大图相关信息报给应用。 | 68e41f4b71Sopenharmony_ci| onSelectedItemsDeleted<sup>13+</sup> | [ItemsDeletedCallback](#itemsdeletedcallback13) | 否 | - | 已勾选的图片被删除时产生的回调,并将被删除图片的相关信息回调给应用。 | 69e41f4b71Sopenharmony_ci| onExceedMaxSelected<sup>13+</sup> | [ExceedMaxSeletedCallback](#exceedmaxseletedcallback13) | 否 | - | 选择达到最大选择数量(最大图片选择数量或者是最大视频选择数量亦或是总的最大选择数量)之后再次点击勾选时产生的回调。<br>- 若选择的数量达到了最大图片选择数量且未达到总的最大选择数量则回调的参数exceedMaxCountType为[MaxCountType](#maxcounttype).PHOTO_MAX_COUNT。<br>- 若选择的数量达到了最大视频选择数量且未达到总的最大选择数量则回调的参数exceedMaxCountType为[MaxCountType](#maxcounttype).VIDEO_MAX_COUNT。<br>- 只要选择的数量达到了总的最大选择数量则回调的的参数exceedMaxCountType为[MaxCountType](#maxcounttype).TOTAL_MAX_COUNT。 | 70e41f4b71Sopenharmony_ci| onCurrentAlbumDeleted<sup>13+</sup> | [CurrentAlbumDeletedCallback](#currentalbumdeletedcallback13) | 否 | - | 当前相册被删除时产生的回调。<br>当前相册是指通过pickerContorller.[setData](#setdata)([DataType](#datatype).SET_ALBUM_URI, currentAlbumUri)接口设置给宫格组件的相册,即“currentAlbumUri”。<br>当前相册被删除后若使用方向刷新自己的相册标题栏,使用方可以设置自己的标题栏名称为默认的相册名例如“图片和视频”、“图片”或“视频”,然后通过pickerContorller.[setData](#setdata)([DataType](#datatype).SET_ALBUM_URI, '')接口传空串去刷新宫格页为默认相册。 | 71e41f4b71Sopenharmony_ci| pickerController | [PickerController](#pickercontroller) | 否 | @ObjectLink | 应用可通过PickerController向Picker组件发送数据。 | 72e41f4b71Sopenharmony_ci 73e41f4b71Sopenharmony_ci## PickerOptions 74e41f4b71Sopenharmony_ci 75e41f4b71Sopenharmony_ci继承自[BaseSelectOptions](js-apis-photoAccessHelper.md#baseselectoptions12)。 76e41f4b71Sopenharmony_ci 77e41f4b71Sopenharmony_ciPicker配置选项。 78e41f4b71Sopenharmony_ci 79e41f4b71Sopenharmony_ci**原子化服务API**:从API version 12开始,该接口支持在原子化服务中使用。 80e41f4b71Sopenharmony_ci 81e41f4b71Sopenharmony_ci**系统能力**:SystemCapability.FileManagement.PhotoAccessHelper.Core 82e41f4b71Sopenharmony_ci 83e41f4b71Sopenharmony_ci| 名称 | 类型 | 必填 | 说明 | 84e41f4b71Sopenharmony_ci|---------------------------------|-----------------------------------------|-----|--------------------------------------------------------------------------| 85e41f4b71Sopenharmony_ci| checkBoxColor | string | 否 | 勾选框的背景色。格式为8位十六进制颜色代码。 | 86e41f4b71Sopenharmony_ci| backgroundColor | string | 否 | picker宫格页面背景色。格式为8位十六进制颜色代码。 | 87e41f4b71Sopenharmony_ci| isRepeatSelectSupported | boolean | 否 | 是否支持单张图片重复选择。true表示支持。 | 88e41f4b71Sopenharmony_ci| checkboxTextColor | string | 否 | 勾选框内文本颜色。格式为8位十六进制颜色代码。 (该能力暂不支持) | 89e41f4b71Sopenharmony_ci| photoBrowserBackgroundColorMode | [PickerColorMode](#pickercolormode) | 否 | 大图背景颜色。包括跟随系统、浅色模式以及深色模式,默认为跟随系统。 | 90e41f4b71Sopenharmony_ci| maxSelectedReminderMode | [ReminderMode](#remindermode) | 否 | 选择数量达到最大时的提示方式。包括弹toast提示、不提示以及蒙层提示,默认为弹toast提示。 | 91e41f4b71Sopenharmony_ci| orientation | [PickerOrientation](#pickerorientation) | 否 | 宫格页面滑动预览方向,包括水平和竖直两个方向,默认为竖直方向。(该能力暂不支持) | 92e41f4b71Sopenharmony_ci| selectMode | [SelectMode](#selectmode) | 否 | 选择模式。包括多选和单选,默认为多选。 | 93e41f4b71Sopenharmony_ci| maxPhotoSelectNumber | number | 否 | 图片最大的选择数量。最大值为500,受到最大选择总数的限制。 | 94e41f4b71Sopenharmony_ci| maxVideoSelectNumber | number | 否 | 视频最大的选择数量。最大值为500,受到最大选择总数的限制。 | 95e41f4b71Sopenharmony_ci| isSlidingSelectionSupported<sup>13+</sup> | boolean | 否 | 是否支持滑动多选,默认不支持。重复选择场景不支持滑动多选。 | 96e41f4b71Sopenharmony_ci| photoBrowserCheckboxPosition<sup>13+</sup> | [number, number] | 否 | 设置大图页checkbox的位置。第一个参数为X方向偏移量,第二个参数为Y方向偏移量。传参范围0-1,代表距离组件左上角0%-100%的偏移量。 | 97e41f4b71Sopenharmony_ci 98e41f4b71Sopenharmony_ci## ItemsDeletedCallback<sup>13+</sup> 99e41f4b71Sopenharmony_ci 100e41f4b71Sopenharmony_citype ItemsDeletedCallback = (baseItemInfos: Array<BaseItemInfo>) => void 101e41f4b71Sopenharmony_ci 102e41f4b71Sopenharmony_ci已勾选的图片被删除时产生的回调事件。 103e41f4b71Sopenharmony_ci 104e41f4b71Sopenharmony_ci**原子化服务API:** 从API version 13开始,该接口支持在原子化服务中使用。 105e41f4b71Sopenharmony_ci 106e41f4b71Sopenharmony_ci**系统能力**:SystemCapability.FileManagement.PhotoAccessHelper.Core 107e41f4b71Sopenharmony_ci 108e41f4b71Sopenharmony_ci**参数:** 109e41f4b71Sopenharmony_ci 110e41f4b71Sopenharmony_ci| 参数名 | 类型 | 必填 | 说明 | 111e41f4b71Sopenharmony_ci| -------- |--------------------------------------------| -------- |----------| 112e41f4b71Sopenharmony_ci| baseItemInfos | Array<[BaseItemInfo](#baseiteminfo)> | 是 | 照片的基本信息。 | 113e41f4b71Sopenharmony_ci 114e41f4b71Sopenharmony_ci## ExceedMaxSeletedCallback<sup>13+</sup> 115e41f4b71Sopenharmony_ci 116e41f4b71Sopenharmony_citype ExceedMaxSeletedCallback = (exceedMaxCountType: MaxCountType) => void 117e41f4b71Sopenharmony_ci 118e41f4b71Sopenharmony_ci选择达到最大选择数量之后再次点击勾选时的回调事件。 119e41f4b71Sopenharmony_ci 120e41f4b71Sopenharmony_ci**原子化服务API:** 从API version 13开始,该接口支持在原子化服务中使用。 121e41f4b71Sopenharmony_ci 122e41f4b71Sopenharmony_ci**系统能力**:SystemCapability.FileManagement.PhotoAccessHelper.Core 123e41f4b71Sopenharmony_ci 124e41f4b71Sopenharmony_ci**参数:** 125e41f4b71Sopenharmony_ci 126e41f4b71Sopenharmony_ci| 参数名 | 类型 | 必填 | 说明 | 127e41f4b71Sopenharmony_ci| -------- |-------------------------------| -------- |----------------------------------------------| 128e41f4b71Sopenharmony_ci| exceedMaxCountType | [MaxCountType](#maxcounttype) | 是 | 达到最大选择数量的类型。类型包含图片最大选择数量、视频最大选择数量以及总的最大选择数量。 | 129e41f4b71Sopenharmony_ci 130e41f4b71Sopenharmony_ci## CurrentAlbumDeletedCallback<sup>13+</sup> 131e41f4b71Sopenharmony_ci 132e41f4b71Sopenharmony_citype CurrentAlbumDeletedCallback = () => void 133e41f4b71Sopenharmony_ci 134e41f4b71Sopenharmony_ci当前相册被删除时的回调事件。 135e41f4b71Sopenharmony_ci 136e41f4b71Sopenharmony_ci**原子化服务API:** 从API version 13开始,该接口支持在原子化服务中使用。 137e41f4b71Sopenharmony_ci 138e41f4b71Sopenharmony_ci**系统能力**:SystemCapability.FileManagement.PhotoAccessHelper.Core 139e41f4b71Sopenharmony_ci 140e41f4b71Sopenharmony_ci## PickerController 141e41f4b71Sopenharmony_ci 142e41f4b71Sopenharmony_ci应用可通过PickerController向picker组件发送数据。 143e41f4b71Sopenharmony_ci 144e41f4b71Sopenharmony_ci**装饰器类型**:@Observed 145e41f4b71Sopenharmony_ci 146e41f4b71Sopenharmony_ci**原子化服务API**:从API version 12开始,该接口支持在原子化服务中使用。 147e41f4b71Sopenharmony_ci 148e41f4b71Sopenharmony_ci**系统能力**:SystemCapability.FileManagement.PhotoAccessHelper.Core 149e41f4b71Sopenharmony_ci 150e41f4b71Sopenharmony_ci### setData 151e41f4b71Sopenharmony_ci 152e41f4b71Sopenharmony_cisetData(dataType: DataType, data: Object): void 153e41f4b71Sopenharmony_ci 154e41f4b71Sopenharmony_ci应用可通过该接口向picker组件发送数据,并通过DataType来区分具体发送什么类型的数据。 155e41f4b71Sopenharmony_ci 156e41f4b71Sopenharmony_ci**原子化服务API**:从API version 12开始,该接口支持在原子化服务中使用。 157e41f4b71Sopenharmony_ci 158e41f4b71Sopenharmony_ci**系统能力**:SystemCapability.FileManagement.PhotoAccessHelper.Core 159e41f4b71Sopenharmony_ci 160e41f4b71Sopenharmony_ci**参数:** 161e41f4b71Sopenharmony_ci 162e41f4b71Sopenharmony_ci| 参数名 | 类型 | 必填 | 说明 | 163e41f4b71Sopenharmony_ci| ------------------------- | ------------------ | ----- | --------------- | 164e41f4b71Sopenharmony_ci| dataType | [DataType](#datatype) | 是 | 发送数据的数据类型。| 165e41f4b71Sopenharmony_ci| data | Object | 是 | 发送的数据。 | 166e41f4b71Sopenharmony_ci 167e41f4b71Sopenharmony_ci### setMaxSelected 168e41f4b71Sopenharmony_ci 169e41f4b71Sopenharmony_cisetMaxSelected(maxSelected: MaxSelected): void 170e41f4b71Sopenharmony_ci 171e41f4b71Sopenharmony_ci应用可通过该接口,实时地设置图片的最大选择数量、视频的最大选择数量以及总的最大选择数量。 172e41f4b71Sopenharmony_ci 173e41f4b71Sopenharmony_ci**原子化服务API**:从API version 12开始,该接口支持在原子化服务中使用。 174e41f4b71Sopenharmony_ci 175e41f4b71Sopenharmony_ci**系统能力**:SystemCapability.FileManagement.PhotoAccessHelper.Core 176e41f4b71Sopenharmony_ci 177e41f4b71Sopenharmony_ci**参数:** 178e41f4b71Sopenharmony_ci 179e41f4b71Sopenharmony_ci| 参数名 | 类型 | 必填 | 说明 | 180e41f4b71Sopenharmony_ci| ------------------------- | ------------------ | ----- | --------------- | 181e41f4b71Sopenharmony_ci| maxSelected | [MaxSelected](#maxselected) | 是 | 最大选择数量。| 182e41f4b71Sopenharmony_ci 183e41f4b71Sopenharmony_ci### setPhotoBrowserItem 184e41f4b71Sopenharmony_ci 185e41f4b71Sopenharmony_cisetPhotoBrowserItem(uri: string, photoBrowserRange?: PhotoBrowserRange): void 186e41f4b71Sopenharmony_ci 187e41f4b71Sopenharmony_ci应用可通过该接口,切换picker组件至大图浏览模式浏览图片;当已处于大图浏览模式时,切换浏览的图片。 188e41f4b71Sopenharmony_ci 189e41f4b71Sopenharmony_ci**原子化服务API**:从API version 12开始,该接口支持在原子化服务中使用。 190e41f4b71Sopenharmony_ci 191e41f4b71Sopenharmony_ci**系统能力**:SystemCapability.FileManagement.PhotoAccessHelper.Core 192e41f4b71Sopenharmony_ci 193e41f4b71Sopenharmony_ci**参数:** 194e41f4b71Sopenharmony_ci 195e41f4b71Sopenharmony_ci| 参数名 | 类型 | 必填 | 说明 | 196e41f4b71Sopenharmony_ci| ------------------------- | ------------------ | ----- | --------------- | 197e41f4b71Sopenharmony_ci| uri | string | 是 | 指定大图浏览的图片uri。仅支持指定用户已选择的图片,未选择的图片不生效。| 198e41f4b71Sopenharmony_ci| photoBrowserRange | [PhotoBrowserRange](#photobrowserrange) | 否 | 打开大图浏览模式后,左右滑动切换浏览图片的范围,可配置仅浏览用户选择的或浏览全部图片,视频。默认:PhotoBrowserRange.ALL。浏览全部图片,视频。 | 199e41f4b71Sopenharmony_ci 200e41f4b71Sopenharmony_ci### exitPhotoBrowser<sup>13+</sup> 201e41f4b71Sopenharmony_ci 202e41f4b71Sopenharmony_ciexitPhotoBrowser(): void 203e41f4b71Sopenharmony_ci 204e41f4b71Sopenharmony_ci应用可通过该接口,向picker发送退出大图的通知。 205e41f4b71Sopenharmony_ci 206e41f4b71Sopenharmony_ci**原子化服务API**:从API version 13开始,该接口支持在原子化服务中使用。 207e41f4b71Sopenharmony_ci 208e41f4b71Sopenharmony_ci**系统能力**:SystemCapability.FileManagement.PhotoAccessHelper.Core 209e41f4b71Sopenharmony_ci 210e41f4b71Sopenharmony_ci### setPhotoBrowserUIElementVisibility<sup>13+</sup> 211e41f4b71Sopenharmony_ci 212e41f4b71Sopenharmony_cisetPhotoBrowserUIElementVisibility(elements: Array<PhotoBrowserUIElement>, isVisible: boolean): void 213e41f4b71Sopenharmony_ci 214e41f4b71Sopenharmony_ci应用可通过该接口,设置大图页大图预览组件外其他UI元素是否可见。不设置则默认可见。 215e41f4b71Sopenharmony_ci 216e41f4b71Sopenharmony_ci**原子化服务API**:从API version 13开始,该接口支持在原子化服务中使用。 217e41f4b71Sopenharmony_ci 218e41f4b71Sopenharmony_ci**系统能力**:SystemCapability.FileManagement.PhotoAccessHelper.Core 219e41f4b71Sopenharmony_ci 220e41f4b71Sopenharmony_ci**参数:** 221e41f4b71Sopenharmony_ci 222e41f4b71Sopenharmony_ci| 参数名 | 类型 | 必填 | 说明 | 223e41f4b71Sopenharmony_ci|-------------|----------------------------------------------------------------| ----- |-------------------| 224e41f4b71Sopenharmony_ci| elements | Array<[PhotoBrowserUIElement](#photobrowseruielement13)> | 是 | 大图页大图预览组件外其他UI元素。 | 225e41f4b71Sopenharmony_ci| isVisible | boolean | 是 | 是否可见。 | 226e41f4b71Sopenharmony_ci 227e41f4b71Sopenharmony_ci## BaseItemInfo 228e41f4b71Sopenharmony_ci 229e41f4b71Sopenharmony_ci图片、视频相关信息。 230e41f4b71Sopenharmony_ci 231e41f4b71Sopenharmony_ci**原子化服务API**:从API version 12开始,该接口支持在原子化服务中使用。 232e41f4b71Sopenharmony_ci 233e41f4b71Sopenharmony_ci**系统能力**:SystemCapability.FileManagement.PhotoAccessHelper.Core 234e41f4b71Sopenharmony_ci 235e41f4b71Sopenharmony_ci| 名称 | 类型 | 必填 | 说明 | 236e41f4b71Sopenharmony_ci|----------|--------|-----|---------------------------------------------------| 237e41f4b71Sopenharmony_ci| uri | string | 否 | 图片、视频的uri(itemType为ThUMBNAIL时支持,否则为空)。 | 238e41f4b71Sopenharmony_ci| mimeType | string | 否 | 图片、视频的mimeType(itemType为ThUMBNAIL时支持,否则为空)。 | 239e41f4b71Sopenharmony_ci| width | number | 否 | 图片、视频的宽(单位:像素)(itemType为ThUMBNAIL时支持,否则为空)。 | 240e41f4b71Sopenharmony_ci| height | number | 否 | 图片、视频的高(单位:像素)(itemType为ThUMBNAIL时支持,否则为空)。 | 241e41f4b71Sopenharmony_ci| size | number | 否 | 图片、视频的大小(单位:千字节)(itemType为ThUMBNAIL时支持,否则为空)。 | 242e41f4b71Sopenharmony_ci| duration | number | 否 | 视频的时长(单位:毫秒),图片时返回-1(itemType为ThUMBNAIL时支持,否则为空)。 | 243e41f4b71Sopenharmony_ci 244e41f4b71Sopenharmony_ci## ItemInfo 245e41f4b71Sopenharmony_ci 246e41f4b71Sopenharmony_ci继承自[BaseItemInfo],仅含私有参数itemType 247e41f4b71Sopenharmony_ci 248e41f4b71Sopenharmony_ci图片、视频相关信息。 249e41f4b71Sopenharmony_ci 250e41f4b71Sopenharmony_ci**原子化服务API**:从API version 12开始,该接口支持在原子化服务中使用。 251e41f4b71Sopenharmony_ci 252e41f4b71Sopenharmony_ci**系统能力**:SystemCapability.FileManagement.PhotoAccessHelper.Core 253e41f4b71Sopenharmony_ci 254e41f4b71Sopenharmony_ci| 名称 | 类型 | 必填 | 说明 | 255e41f4b71Sopenharmony_ci|----------|--------|-----|---------------------------------------------------| 256e41f4b71Sopenharmony_ci| itemType | [ItemType](#itemtype) | 否 | 被点击的item类型。包括缩略图item和相机item。 | 257e41f4b71Sopenharmony_ci 258e41f4b71Sopenharmony_ci## PhotoBrowserInfo 259e41f4b71Sopenharmony_ci 260e41f4b71Sopenharmony_ci大图相关信息。 261e41f4b71Sopenharmony_ci 262e41f4b71Sopenharmony_ci**原子化服务API**:从API version 12开始,该接口支持在原子化服务中使用。 263e41f4b71Sopenharmony_ci 264e41f4b71Sopenharmony_ci**系统能力**:SystemCapability.FileManagement.PhotoAccessHelper.Core 265e41f4b71Sopenharmony_ci 266e41f4b71Sopenharmony_ci| 名称 | 类型 | 必填 | 说明 | 267e41f4b71Sopenharmony_ci|----------|--------|-----|---------| 268e41f4b71Sopenharmony_ci| animatorParams | [AnimatorParams](#animatorparams) | 否 | 进入、退出大图界面时的动效参数。 | 269e41f4b71Sopenharmony_ci 270e41f4b71Sopenharmony_ci## AnimatorParams 271e41f4b71Sopenharmony_ci 272e41f4b71Sopenharmony_ci进退大图动效参数。 273e41f4b71Sopenharmony_ci 274e41f4b71Sopenharmony_ci**原子化服务API**:从API version 12开始,该接口支持在原子化服务中使用。 275e41f4b71Sopenharmony_ci 276e41f4b71Sopenharmony_ci**系统能力**:SystemCapability.FileManagement.PhotoAccessHelper.Core 277e41f4b71Sopenharmony_ci 278e41f4b71Sopenharmony_ci| 名称 | 类型 | 必填 | 说明 | 279e41f4b71Sopenharmony_ci|----------|--------|-----|--------------| 280e41f4b71Sopenharmony_ci| duration | number | 否 | 动效时长(单位:毫秒)。 | 281e41f4b71Sopenharmony_ci| curve | [Curve](../apis-arkui/js-apis-curve.md#curve) | [ICurve](../apis-arkui/js-apis-curve.md#icurve9) | string | 否 | 动效曲线。 | 282e41f4b71Sopenharmony_ci 283e41f4b71Sopenharmony_ci## MaxSelected 284e41f4b71Sopenharmony_ci 285e41f4b71Sopenharmony_ci最大选择数量。 286e41f4b71Sopenharmony_ci 287e41f4b71Sopenharmony_ci**原子化服务API**:从API version 12开始,该接口支持在原子化服务中使用。 288e41f4b71Sopenharmony_ci 289e41f4b71Sopenharmony_ci**系统能力**:SystemCapability.FileManagement.PhotoAccessHelper.Core 290e41f4b71Sopenharmony_ci 291e41f4b71Sopenharmony_ci| 名称 | 类型 | 必填 | 说明 | 292e41f4b71Sopenharmony_ci|----------|--------|-----|---------| 293e41f4b71Sopenharmony_ci| data | Map<[MaxCountType](#maxcounttype), number> | 否 | 最大选择数量(包含图片的最大选择数量、视频的最大选择数量以及总的最大选择数量) | 294e41f4b71Sopenharmony_ci 295e41f4b71Sopenharmony_ci## DataType 296e41f4b71Sopenharmony_ci 297e41f4b71Sopenharmony_ci枚举,PickerController向picker组件发送数据的数据类型。 298e41f4b71Sopenharmony_ci 299e41f4b71Sopenharmony_ci**原子化服务API**:从API version 12开始,该接口支持在原子化服务中使用。 300e41f4b71Sopenharmony_ci 301e41f4b71Sopenharmony_ci**系统能力**:SystemCapability.FileManagement.PhotoAccessHelper.Core 302e41f4b71Sopenharmony_ci 303e41f4b71Sopenharmony_ci| 名称 | 值 | 说明 | 304e41f4b71Sopenharmony_ci|-------------------|-----|--------------------------------------------------------------------------------------------------------------------| 305e41f4b71Sopenharmony_ci| SET_SELECTED_URIS | 1 | 发送已选择的数据列表,通知picker组件勾选状态刷新,需要传入string数组类型。<br>例如:应用在自己的页面中删除某张图片后,需要把剩下的已选择的数据列表通过setData接口通知到picker组件,从而触发picker组件勾选框状态刷新正确。 | 306e41f4b71Sopenharmony_ci| SET_ALBUM_URI | 2 | 应用按需设置图片的最大选择数量、视频的最大选择数量以及总的最大选择数量。 | 307e41f4b71Sopenharmony_ci 308e41f4b71Sopenharmony_ci## ItemType 309e41f4b71Sopenharmony_ci 310e41f4b71Sopenharmony_ci被点击item的类型。 311e41f4b71Sopenharmony_ci 312e41f4b71Sopenharmony_ci**原子化服务API**:从API version 12开始,该接口支持在原子化服务中使用。 313e41f4b71Sopenharmony_ci 314e41f4b71Sopenharmony_ci**系统能力**:SystemCapability.FileManagement.PhotoAccessHelper.Core 315e41f4b71Sopenharmony_ci 316e41f4b71Sopenharmony_ci| 名称 | 值 | 说明 | 317e41f4b71Sopenharmony_ci|-------------------|-----|------------| 318e41f4b71Sopenharmony_ci| THUMBNAIL | 0 | 图片、视频item(缩略图item)。 | 319e41f4b71Sopenharmony_ci| CAMERA | 1 | 相机item。 | 320e41f4b71Sopenharmony_ci 321e41f4b71Sopenharmony_ci## ClickType 322e41f4b71Sopenharmony_ci 323e41f4b71Sopenharmony_ci点击操作的类型。 324e41f4b71Sopenharmony_ci 325e41f4b71Sopenharmony_ci**原子化服务API**:从API version 12开始,该接口支持在原子化服务中使用。 326e41f4b71Sopenharmony_ci 327e41f4b71Sopenharmony_ci**系统能力**:SystemCapability.FileManagement.PhotoAccessHelper.Core 328e41f4b71Sopenharmony_ci 329e41f4b71Sopenharmony_ci| 名称 | 值 | 说明 | 330e41f4b71Sopenharmony_ci|-------------------|-----|------------------------| 331e41f4b71Sopenharmony_ci| SELECTED | 0 | 选择操作(勾选图片或者点击相机item)。 | 332e41f4b71Sopenharmony_ci| DESELECTED | 1 | 取消选择操作(取消勾选图片)。 | 333e41f4b71Sopenharmony_ci 334e41f4b71Sopenharmony_ci## PickerOrientation 335e41f4b71Sopenharmony_ci 336e41f4b71Sopenharmony_ciPicker宫格页面滑动预览的方向。(该能力暂不支持) 337e41f4b71Sopenharmony_ci 338e41f4b71Sopenharmony_ci**原子化服务API**:从API version 12开始,该接口支持在原子化服务中使用。 339e41f4b71Sopenharmony_ci 340e41f4b71Sopenharmony_ci**系统能力**:SystemCapability.FileManagement.PhotoAccessHelper.Core 341e41f4b71Sopenharmony_ci 342e41f4b71Sopenharmony_ci| 名称 | 值 | 说明 | 343e41f4b71Sopenharmony_ci|-------------------|-----|-------| 344e41f4b71Sopenharmony_ci| VERTICAL | 0 | 竖直方向。 | 345e41f4b71Sopenharmony_ci| HORIZONTAL | 1 | 水平方向。 | 346e41f4b71Sopenharmony_ci 347e41f4b71Sopenharmony_ci## SelectMode 348e41f4b71Sopenharmony_ci 349e41f4b71Sopenharmony_ci选择模式。 350e41f4b71Sopenharmony_ci 351e41f4b71Sopenharmony_ci**原子化服务API**:从API version 12开始,该接口支持在原子化服务中使用。 352e41f4b71Sopenharmony_ci 353e41f4b71Sopenharmony_ci**系统能力**:SystemCapability.FileManagement.PhotoAccessHelper.Core 354e41f4b71Sopenharmony_ci 355e41f4b71Sopenharmony_ci| 名称 | 值 | 说明 | 356e41f4b71Sopenharmony_ci|-------------------|-----|-------| 357e41f4b71Sopenharmony_ci| SINGLE_SELECT | 0 | 单选模式。 | 358e41f4b71Sopenharmony_ci| MULTI_SELECT | 1 | 多选模式。 | 359e41f4b71Sopenharmony_ci 360e41f4b71Sopenharmony_ci## PickerColorMode 361e41f4b71Sopenharmony_ci 362e41f4b71Sopenharmony_ciPicker的颜色模式。 363e41f4b71Sopenharmony_ci 364e41f4b71Sopenharmony_ci**原子化服务API**:从API version 12开始,该接口支持在原子化服务中使用。 365e41f4b71Sopenharmony_ci 366e41f4b71Sopenharmony_ci**系统能力**:SystemCapability.FileManagement.PhotoAccessHelper.Core。 367e41f4b71Sopenharmony_ci 368e41f4b71Sopenharmony_ci| 名称 | 值 | 说明 | 369e41f4b71Sopenharmony_ci|-------------------|-----|-------| 370e41f4b71Sopenharmony_ci| AUTO | 0 | 跟随系统。 | 371e41f4b71Sopenharmony_ci| LIGHT | 1 | 浅色模式。 | 372e41f4b71Sopenharmony_ci| DARK | 2 | 深色模式。 | 373e41f4b71Sopenharmony_ci 374e41f4b71Sopenharmony_ci## ReminderMode 375e41f4b71Sopenharmony_ci 376e41f4b71Sopenharmony_ci最大选择数量提示方式。 377e41f4b71Sopenharmony_ci 378e41f4b71Sopenharmony_ci**原子化服务API**:从API version 12开始,该接口支持在原子化服务中使用。 379e41f4b71Sopenharmony_ci 380e41f4b71Sopenharmony_ci**系统能力**:SystemCapability.FileManagement.PhotoAccessHelper.Core 381e41f4b71Sopenharmony_ci 382e41f4b71Sopenharmony_ci| 名称 | 值 | 说明 | 383e41f4b71Sopenharmony_ci|-------------------|-----|-----------| 384e41f4b71Sopenharmony_ci| NONE | 0 | 不提示。 | 385e41f4b71Sopenharmony_ci| TOAST | 1 | 弹toast提示。 | 386e41f4b71Sopenharmony_ci| MASK | 2 | 蒙灰提示。 | 387e41f4b71Sopenharmony_ci 388e41f4b71Sopenharmony_ci## MaxCountType 389e41f4b71Sopenharmony_ci 390e41f4b71Sopenharmony_ci最大选择数量的类型。 391e41f4b71Sopenharmony_ci 392e41f4b71Sopenharmony_ci**原子化服务API**:从API version 12开始,该接口支持在原子化服务中使用。 393e41f4b71Sopenharmony_ci 394e41f4b71Sopenharmony_ci**系统能力**:SystemCapability.FileManagement.PhotoAccessHelper.Core 395e41f4b71Sopenharmony_ci 396e41f4b71Sopenharmony_ci| 名称 | 值 | 说明 | 397e41f4b71Sopenharmony_ci|-------------------|-----|---------------------------| 398e41f4b71Sopenharmony_ci| TOTAL_MAX_COUNT | 0 | 总的最大选择数量。 | 399e41f4b71Sopenharmony_ci| PHOTO_MAX_COUNT | 1 | 图片的最大选择数量(不能大于总的最大选择数量)。 | 400e41f4b71Sopenharmony_ci| VIDEO_MAX_COUNT | 2 | 视频的最大选择数量(不能大于总的最大选择数量)。 | 401e41f4b71Sopenharmony_ci 402e41f4b71Sopenharmony_ci## PhotoBrowserRange 403e41f4b71Sopenharmony_ci 404e41f4b71Sopenharmony_ci打开大图浏览模式后,左右滑动切换浏览图片的范围。 405e41f4b71Sopenharmony_ci 406e41f4b71Sopenharmony_ci**原子化服务API**:从API version 12开始,该接口支持在原子化服务中使用。 407e41f4b71Sopenharmony_ci 408e41f4b71Sopenharmony_ci**系统能力**:SystemCapability.FileManagement.PhotoAccessHelper.Core 409e41f4b71Sopenharmony_ci 410e41f4b71Sopenharmony_ci| 名称 | 值 | 说明 | 411e41f4b71Sopenharmony_ci|-------------------|-----|---------------------------| 412e41f4b71Sopenharmony_ci| ALL | 0 | 全部图片,视频。 | 413e41f4b71Sopenharmony_ci| SELECTED_ONLY | 1 | 仅用户已选择的图片,视频。 | 414e41f4b71Sopenharmony_ci 415e41f4b71Sopenharmony_ci## PhotoBrowserUIElement<sup>13+</sup> 416e41f4b71Sopenharmony_ci 417e41f4b71Sopenharmony_ci大图页大图预览组件外其他UI元素。 418e41f4b71Sopenharmony_ci 419e41f4b71Sopenharmony_ci**原子化服务API**:从API version 13开始,该接口支持在原子化服务中使用。 420e41f4b71Sopenharmony_ci 421e41f4b71Sopenharmony_ci**系统能力**:SystemCapability.FileManagement.PhotoAccessHelper.Core 422e41f4b71Sopenharmony_ci 423e41f4b71Sopenharmony_ci| 名称 | 值 | 说明 | 424e41f4b71Sopenharmony_ci|-------------|-----|----------| 425e41f4b71Sopenharmony_ci| CHECKBOX | 0 | 大图页勾选框。 | 426e41f4b71Sopenharmony_ci| BACK_BUTTON | 1 | 大图页返回按钮。 | 427e41f4b71Sopenharmony_ci 428e41f4b71Sopenharmony_ci## 示例 429e41f4b71Sopenharmony_ci 430e41f4b71Sopenharmony_ci```ts 431e41f4b71Sopenharmony_ci// xxx.ets 432e41f4b71Sopenharmony_ciimport { 433e41f4b71Sopenharmony_ci PhotoPickerComponent, PickerController, PickerOptions, 434e41f4b71Sopenharmony_ci DataType, BaseItemInfo, ItemInfo, PhotoBrowserInfo, AnimatorParams, 435e41f4b71Sopenharmony_ci MaxSelected, ItemType, ClickType, PickerOrientation, 436e41f4b71Sopenharmony_ci SelectMode, PickerColorMode, ReminderMode, MaxCountType, PhotoBrowserRange, PhotoBrowserUIElement, 437e41f4b71Sopenharmony_ci ItemsDeletedCallback, ExceedMaxSeletedCallback, CurrentAlbumDeletedCallback 438e41f4b71Sopenharmony_ci} from '@ohos.file.PhotoPickerComponent'; 439e41f4b71Sopenharmony_ciimport photoAccessHelper from '@ohos.file.photoAccessHelper'; 440e41f4b71Sopenharmony_ci 441e41f4b71Sopenharmony_ci@Entry 442e41f4b71Sopenharmony_ci@Component 443e41f4b71Sopenharmony_cistruct PickerDemo { 444e41f4b71Sopenharmony_ci pickerOptions: PickerOptions = new PickerOptions(); 445e41f4b71Sopenharmony_ci @State pickerController: PickerController = new PickerController(); 446e41f4b71Sopenharmony_ci @State selectUris: Array<string> = new Array<string>(); 447e41f4b71Sopenharmony_ci @State currentUri: string = ''; 448e41f4b71Sopenharmony_ci @State isBrowserShow: boolean = false; 449e41f4b71Sopenharmony_ci private selectedItemsDeletedCallback: ItemsDeletedCallback = (baseItemInfos: Array<BaseItemInfo>) => this.onSelectedItemsDeleted(recentPhotoExists); 450e41f4b71Sopenharmony_ci private exceedMaxSeletedCallback: ExceedMaxSeletedCallback = (exceedMaxCountType: MaxCountType) => this.onExceedMaxSelected(recentPhotoInfo); 451e41f4b71Sopenharmony_ci private currentAlbumDeletedCallback: CurrentAlbumDeletedCallback = () => this.onCurrentAlbumDeleted(); 452e41f4b71Sopenharmony_ci 453e41f4b71Sopenharmony_ci aboutToAppear() { 454e41f4b71Sopenharmony_ci this.pickerOptions.MIMEType = photoAccessHelper.PhotoViewMIMETypes.IMAGE_VIDEO_TYPE; 455e41f4b71Sopenharmony_ci this.pickerOptions.maxSelectNumber = 5; 456e41f4b71Sopenharmony_ci this.pickerOptions.isSearchSupported = false; 457e41f4b71Sopenharmony_ci this.pickerOptions.isPhotoTakingSupported = false; 458e41f4b71Sopenharmony_ci this.pickerOptions.photoBrowserCheckboxPosition = [0.5, 0.5]; 459e41f4b71Sopenharmony_ci // 其他属性..... 460e41f4b71Sopenharmony_ci } 461e41f4b71Sopenharmony_ci 462e41f4b71Sopenharmony_ci private onSelect(uri: string): void { 463e41f4b71Sopenharmony_ci // 添加 464e41f4b71Sopenharmony_ci if (uri) { 465e41f4b71Sopenharmony_ci this.selectUris.push(uri); 466e41f4b71Sopenharmony_ci } 467e41f4b71Sopenharmony_ci } 468e41f4b71Sopenharmony_ci 469e41f4b71Sopenharmony_ci private onDeselect(uri: string): void { 470e41f4b71Sopenharmony_ci // 移除 471e41f4b71Sopenharmony_ci if (uri) { 472e41f4b71Sopenharmony_ci this.selectUris = this.selectUris.filter((item: string) => { 473e41f4b71Sopenharmony_ci return item != uri; 474e41f4b71Sopenharmony_ci }) 475e41f4b71Sopenharmony_ci } 476e41f4b71Sopenharmony_ci } 477e41f4b71Sopenharmony_ci 478e41f4b71Sopenharmony_ci private onItemClicked(itemInfo: ItemInfo, clickType: ClickType): boolean { 479e41f4b71Sopenharmony_ci if (!itemInfo) { 480e41f4b71Sopenharmony_ci return false; 481e41f4b71Sopenharmony_ci } 482e41f4b71Sopenharmony_ci let type: ItemType | undefined = itemInfo.itemType; 483e41f4b71Sopenharmony_ci let uri: string | undefined = itemInfo.uri; 484e41f4b71Sopenharmony_ci if (type === ItemType.CAMERA) { 485e41f4b71Sopenharmony_ci // 点击相机item 486e41f4b71Sopenharmony_ci return true; // 返回true则拉起系统相机,若应用需要自行处理则返回false。 487e41f4b71Sopenharmony_ci } else { 488e41f4b71Sopenharmony_ci if (clickType === ClickType.SELECTED) { 489e41f4b71Sopenharmony_ci // 应用做自己的业务处理 490e41f4b71Sopenharmony_ci if (uri) { 491e41f4b71Sopenharmony_ci this.selectUris.push(uri); 492e41f4b71Sopenharmony_ci this.pickerOptions.preselectedUris = [...this.selectUris]; 493e41f4b71Sopenharmony_ci } 494e41f4b71Sopenharmony_ci return true; // 返回true则勾选,否则则不响应勾选。 495e41f4b71Sopenharmony_ci } else { 496e41f4b71Sopenharmony_ci if (uri) { 497e41f4b71Sopenharmony_ci this.selectUris = this.selectUris.filter((item: string) => { 498e41f4b71Sopenharmony_ci return item != uri; 499e41f4b71Sopenharmony_ci }); 500e41f4b71Sopenharmony_ci this.pickerOptions.preselectedUris = [...this.selectUris]; 501e41f4b71Sopenharmony_ci } 502e41f4b71Sopenharmony_ci } 503e41f4b71Sopenharmony_ci return true; 504e41f4b71Sopenharmony_ci } 505e41f4b71Sopenharmony_ci } 506e41f4b71Sopenharmony_ci 507e41f4b71Sopenharmony_ci private onEnterPhotoBrowser(photoBrowserInfo: PhotoBrowserInfo): boolean { 508e41f4b71Sopenharmony_ci // 进入大图的回调 509e41f4b71Sopenharmony_ci this.isBrowserShow = true; 510e41f4b71Sopenharmony_ci return true; 511e41f4b71Sopenharmony_ci } 512e41f4b71Sopenharmony_ci 513e41f4b71Sopenharmony_ci private onExitPhotoBrowser(photoBrowserInfo: PhotoBrowserInfo): boolean { 514e41f4b71Sopenharmony_ci // 退出大图的回调 515e41f4b71Sopenharmony_ci this.isBrowserShow = false; 516e41f4b71Sopenharmony_ci return true; 517e41f4b71Sopenharmony_ci } 518e41f4b71Sopenharmony_ci 519e41f4b71Sopenharmony_ci private onPickerControllerReady(): void { 520e41f4b71Sopenharmony_ci // 接收到该回调后,便可通过pickerController相关接口向picker发送数据,在此之前不生效。 521e41f4b71Sopenharmony_ci let elements: number[] = [PhotoBrowserUIElement.BACK_BUTTON]; 522e41f4b71Sopenharmony_ci this.pickerController.setPhotoBrowserUIElementVisibility(elements, false); // 设置大图页不显示返回按钮 523e41f4b71Sopenharmony_ci } 524e41f4b71Sopenharmony_ci 525e41f4b71Sopenharmony_ci private onPhotoBrowserChanged(browserItemInfo: BaseItemInfo): boolean { 526e41f4b71Sopenharmony_ci // 大图左右滑动的回调 527e41f4b71Sopenharmony_ci this.currentUri = browserItemInfo.uri ?? ''; 528e41f4b71Sopenharmony_ci return true; 529e41f4b71Sopenharmony_ci } 530e41f4b71Sopenharmony_ci 531e41f4b71Sopenharmony_ci private onSelectedItemsDeleted(baseItemInfos: Array<BaseItemInfo>): void { 532e41f4b71Sopenharmony_ci // 已勾选图片被删除时的回调 533e41f4b71Sopenharmony_ci } 534e41f4b71Sopenharmony_ci 535e41f4b71Sopenharmony_ci private onExceedMaxSelected(exceedMaxCountType: MaxCountType): void { 536e41f4b71Sopenharmony_ci // 超过最大选择数量再次点击时的回调 537e41f4b71Sopenharmony_ci } 538e41f4b71Sopenharmony_ci 539e41f4b71Sopenharmony_ci private onCurrentAlbumDeleted(): void { 540e41f4b71Sopenharmony_ci // 当前相册被删除时的回调 541e41f4b71Sopenharmony_ci } 542e41f4b71Sopenharmony_ci 543e41f4b71Sopenharmony_ci build() { 544e41f4b71Sopenharmony_ci Flex({ 545e41f4b71Sopenharmony_ci direction: FlexDirection.Column, 546e41f4b71Sopenharmony_ci justifyContent: FlexAlign.Center, 547e41f4b71Sopenharmony_ci alignItems: ItemAlign.Center 548e41f4b71Sopenharmony_ci }) { 549e41f4b71Sopenharmony_ci Column() { 550e41f4b71Sopenharmony_ci if (this.isBrowserShow) { 551e41f4b71Sopenharmony_ci // 这里模拟应用自己的大图返回按钮 552e41f4b71Sopenharmony_ci Row() { 553e41f4b71Sopenharmony_ci Button("退出大图").width('33%').height('8%').onClick(() => { 554e41f4b71Sopenharmony_ci this.pickerController.exitPhotoBrowser(); 555e41f4b71Sopenharmony_ci }) 556e41f4b71Sopenharmony_ci }.margin({ bottom: 20 }) 557e41f4b71Sopenharmony_ci } 558e41f4b71Sopenharmony_ci 559e41f4b71Sopenharmony_ci PhotoPickerComponent({ 560e41f4b71Sopenharmony_ci pickerOptions: this.pickerOptions, 561e41f4b71Sopenharmony_ci // onSelect: (uri: string): void => this.onSelect(uri), 562e41f4b71Sopenharmony_ci // onDeselect: (uri: string): void => this.onDeselect(uri), 563e41f4b71Sopenharmony_ci onItemClicked: (itemInfo: ItemInfo, clickType: ClickType): boolean => this.onItemClicked(itemInfo, clickType), // 该接口可替代上面两个接口 564e41f4b71Sopenharmony_ci onEnterPhotoBrowser: (photoBrowserInfo: PhotoBrowserInfo): boolean => this.onEnterPhotoBrowser(photoBrowserInfo), 565e41f4b71Sopenharmony_ci onExitPhotoBrowser: (photoBrowserInfo: PhotoBrowserInfo): boolean => this.onExitPhotoBrowser(photoBrowserInfo), 566e41f4b71Sopenharmony_ci onPickerControllerReady: (): void => this.onPickerControllerReady(), 567e41f4b71Sopenharmony_ci onPhotoBrowserChanged: (browserItemInfo: BaseItemInfo): boolean => this.onPhotoBrowserChanged(browserItemInfo), 568e41f4b71Sopenharmony_ci onSelectedItemsDeleted?: this.selectedItemsDeletedCallback, 569e41f4b71Sopenharmony_ci onExceedMaxSelected?: this.exceedMaxSeletedCallback, 570e41f4b71Sopenharmony_ci onCurrentAlbumDeleted?: this.currentAlbumDeletedCallback, 571e41f4b71Sopenharmony_ci pickerController: this.pickerController, 572e41f4b71Sopenharmony_ci }).height('60%').width('100%') 573e41f4b71Sopenharmony_ci 574e41f4b71Sopenharmony_ci // 这里模拟应用侧底部的选择栏 575e41f4b71Sopenharmony_ci if (this.isBrowserShow) { 576e41f4b71Sopenharmony_ci Row() { 577e41f4b71Sopenharmony_ci ForEach(this.selectUris, (uri: string) => { 578e41f4b71Sopenharmony_ci if (uri === this.currentUri) { 579e41f4b71Sopenharmony_ci Image(uri).height('10%').width('10%').onClick(() => { 580e41f4b71Sopenharmony_ci }).borderWidth(1).borderColor('red') 581e41f4b71Sopenharmony_ci } else { 582e41f4b71Sopenharmony_ci Image(uri).height('10%').width('10%').onClick(() => { 583e41f4b71Sopenharmony_ci this.pickerController.setData(DataType.SET_SELECTED_URIS, this.selectUris); 584e41f4b71Sopenharmony_ci this.pickerController.setPhotoBrowserItem(uri, PhotoBrowserRange.ALL); 585e41f4b71Sopenharmony_ci }) 586e41f4b71Sopenharmony_ci } 587e41f4b71Sopenharmony_ci }, (uri: string) => JSON.stringify(uri)) 588e41f4b71Sopenharmony_ci } 589e41f4b71Sopenharmony_ci } else { 590e41f4b71Sopenharmony_ci Button('预览').width('33%').height('5%').onClick(() => { 591e41f4b71Sopenharmony_ci if (this.selectUris.length > 0) { 592e41f4b71Sopenharmony_ci this.pickerController.setPhotoBrowserItem(this.selectUris[0], PhotoBrowserRange.SELECTED_ONLY); 593e41f4b71Sopenharmony_ci } 594e41f4b71Sopenharmony_ci }) 595e41f4b71Sopenharmony_ci } 596e41f4b71Sopenharmony_ci } 597e41f4b71Sopenharmony_ci } 598e41f4b71Sopenharmony_ci } 599e41f4b71Sopenharmony_ci} 600e41f4b71Sopenharmony_ci``` 601