华为HarmonyOS实现跨多个子系统融合的场景化服务 -- 2 选择头像Button

发布于:2024-12-19 ⋅ 阅读:(11) ⋅ 点赞:(0)

场景介绍

本章节将向您介绍如何使用选择头像Button功能,开发者可调用对应Button组件快速拉起头像选择页面,供用户完成华为账号头像或其他头像的选择与展示。

前提条件

参见开发前提

效果图展示

单击头像按钮拉起半模态选择头像页面来设置头像。

开发步骤

  1. 导入Scenario Fusion Kit模块以及相关公共模块。

    
      
    1. import { FunctionalButton, functionalButtonComponentManager } from '@kit.ScenarioFusionKit'
    2. import { hilog } from '@kit.PerformanceAnalysisKit';

  2. 在容器中声明FunctionalButton,指定Button的openType,并设置对应的回调函数,代码如下:

    
      
    1. @Entry
    2. @Component
    3. struct Index {
    4. // 对应路径 /resources/base/media/下新增 account.png,否则会报错找不到
    5. @State url: ResourceStr = $r('app.media.account');
    6. build() {
    7. Column() {
    8. // 声明FunctionalButton
    9. FunctionalButton({
    10. params: {
    11. // OpenType.CHOOSE_AVATAR表示Button为选择头像类型
    12. openType: functionalButtonComponentManager.OpenType.CHOOSE_AVATAR,
    13. label: '',
    14. // 调整Button样式
    15. styleOption: {
    16. styleConfig: new functionalButtonComponentManager.ButtonConfig()
    17. .type(ButtonType.Normal)
    18. .backgroundImage(this.url)
    19. .backgroundImageSize(ImageSize.Cover)
    20. .width(80)
    21. .height(80)
    22. .backgroundColor('#E5E5E5')
    23. },
    24. },
    25. // OpenType为“CHOOSE_AVATAR”时,回调必须选择“onChooseAvatar”
    26. controller: new functionalButtonComponentManager.FunctionalButtonController().onChooseAvatar((err, data) => {
    27. if (err) {
    28. // 错误日志处理
    29. hilog.error(0x0000, "testTag", "error: %{public}d %{public}s", err.code, err.message);
    30. return;
    31. }
    32. // 成功日志处理
    33. hilog.info(0x0000, "testTag", "succeeded in choosing avatar");
    34. this.url = data.avatarUri!;
    35. })
    36. })
    37. }
    38. .padding({ top: 200 })
    39. .height('100%')
    40. .width('100%')
    41. }
    42. }

    说明

    • openType参数填写“functionalButtonComponentManager.OpenType.CHOOSE_AVATAR”指定Button为选择头像类型。
    • controller参数必须对应填写“new functionalButtonComponentManager.FunctionalButtonController().onChooseAvatar”。
    • 若成功调用,可通过回调函数中的“avatarUri”获取头像图片的地址。

    其他参数请参考:FunctionalButton(Button组件)


网站公告

今日签到

点亮在社区的每一天
去签到