当前位置: 首页 > article >正文

鸿蒙应用开发实战-常用组件-图片组件

在ArkUI框架中,图片组件(Image)是用于在界面上显示图片的基础组件。它支持多种图片格式,并且可以从不同来源加载图片,包括本地资源、网络URL以及内存中的图片数据。以下是图片组件的详细介绍和用法,包括加载网络图片的示例:

图片组件基本用法

以下是图片组件的基本用法,用于在界面上显示一个图片:

Image($r('app.media.app_icon'))
  .width(50) // 设置图片宽度为50像素
  .height(50); // 设置图片高度为50像素

在这个示例中,我们创建了一个图片组件,并使用资源标识符$r('app.media.app_icon')来指定要显示的图片资源。

加载网络图片

当需要从网络加载图片时,可以使用字符串类型的URL作为图片源,并确保应用具有网络访问权限(ohos.permission.INTERNET):

Image('https://consumer.huawei.com/etc/designs/huawei-cbg-site/clientlib-campaign-v4/common-v4/images/logo.svg')
  .width(100)
  .height(50);

设置图片样式

ArkUI的图片组件支持多种样式设置,以下是一些常见的样式设置方法:

设置图片填充模式
Image($r('app.media.app_icon'))
  .width(50)
  .height(50)
  .objectFit(ImageFit.Cover); // 设置图片填充模式为覆盖

ImageFit枚举提供了多种填充模式,包括CoverContainFillNoneScaleDown等,你可以根据需要选择合适的填充模式。

设置图片的圆角
Image($r('app.media.app_icon'))
  .width(50)
  .height(50)
  .borderRadius(20); // 设置图片的圆角半径为20像素

设置图片的边框
Image($r('app.media.app_icon'))
  .width(50)
  .height(50)
  .border({ width: 2, color: Color.Black }); // 设置图片的边框宽度为2像素,颜色为黑色

加载和错误处理

图片组件提供了加载和错误处理的事件,以便在图片加载成功或失败时执行特定的操作:

Image($r('app.media.app_icon'))
  .width(50)
  .height(50)
  .onComplete(() => {
    console.log('蓝不蓝编程:图片加载成功');
  })
  .onError(() => {
    console.log('蓝不蓝编程:图片加载失败');
  });

在这个示例中,我们为图片组件添加了onCompleteonError事件监听器,分别用于处理图片加载成功和失败的情况。

通过这些详细的样式设置和用法,你可以灵活地定制ArkUI图片组件的外观和行为,以满足你的设计需求。图片组件是构建用户界面时常用的组件之一,它可以帮助开发者以灵活的方式展示图片内容。这些样式设置不仅增强了图片的视觉效果,还有助于提升用户体验。在实际开发中,你可以根据具体情况选择合适的样式设置,以实现最佳的图片展示效果。

请注意,当加载网络图片时,需要在应用的配置文件中声明网络访问权限,例如在module.json5中添加以下配置:

{
  "requestPermissions": [
    {
      "name": "ohos.permission.INTERNET"
    }
  ]
}

这样,你的应用就具备了从网络加载图片的权限。更多关于图片组件的用法和属性,可以参考ArkUI的官方文档 。


http://www.kler.cn/a/369954.html

相关文章:

  • WPF5-x名称空间
  • docker的前世今生
  • Odoo免费开源ERP最佳业务实践:生产管理
  • 小哆啦的编程冒险:罗马数字转整数
  • LabVIEW 水电站厂内经济运行系统
  • STM32更新程序OTA
  • HTTP与HTTPS协议
  • C#:错误提示总结(一)
  • 2024-10月的“冷饭热炒“--解读GUI Agent 之computer use?phone use?——多模态大语言模型的进阶之路
  • 复习day
  • 通俗直观介绍ChatGPT背后的大语言模型理论知识
  • 苍穹外卖 将菜品缓存到Redis
  • CI/CD 的原理
  • 共享IPAM地址池实现多账号下地址统一规划管理
  • 2024年10月28日Github流行趋势
  • ssm005基于SSM框架的购物商城系统的开发与实现(论文+源码)_kaic
  • MLP预售开启,革新去中心化通信生态:智能手机与AI Agent齐上阵
  • 让Chrome⽀持⼩于12px 的⽂字⽅式有哪些?区别?
  • 低空经济产业链、政策、延伸品调研笔记
  • 14天速成前端 ------学习日志(已完结)------ 后端程序员学习了解前端
  • RabbitMQ 安装(Windows版本)和使用
  • Multimodal Embed 3:为人工智能搜索提供动力
  • 排查PHP服务器CPU占用率高的问题
  • Elasticsearch如何搜索日志并存储
  • mHand Pro动捕手套创新升级,正式发布!
  • [LeetCode] 814. 二叉树剪枝