HarmonyOS鸿蒙Next中获取控件高度和加载本地图片的问题

发布于 1周前 作者 htzhanglong 来自 鸿蒙OS

HarmonyOS鸿蒙Next中获取控件高度和加载本地图片的问题

  1. 请问如何在控件的ontouch方法里获取控件的高度

  2. 请问image控件怎么通过文件路径加载手机本地目录,应用文件下的图片文件

3 回复

1、onTouch方法会获得TouchEvent对象,其中包含EventTarget:触发事件的元素对象显示区域 Area,参考:

.onTouch((event?: TouchEvent) => {
  if(event?.target){
    let height = event.target.area.height;
  }
})

2、image控件加载图片资源可以参考: https://developer.huawei.com/consumer/cn/doc/harmonyos-guides-V5/arkts-graphics-display-V5

Image组件不能直接传入应用沙箱路径,需要传入应用沙箱uri。

Image的src支持file://路径前缀的字符串,应用沙箱URI:file:///<bundleName>/<sandboxPath>。用于读取本应用安装目录下files文件夹下的图片资源。需要保证目录包路径下的文件有可读权限。参考文档:

https://developer.huawei.com/consumer/cn/doc/harmonyos-references-V5/ts-basic-components-image-V5#image-1

通过调用@ohos.file.fileuri模块的fileuri.getUriFromPath将沙箱路径转化为沙箱uri,参考文档:

https://developer.huawei.com/consumer/cn/doc/harmonyos-references-V5/js-apis-file-fileuri-V5#fileurigeturifrompath

更多关于HarmonyOS鸿蒙Next中获取控件高度和加载本地图片的问题的实战系列教程也可以访问 https://www.itying.com/category-93-b0.html


在HarmonyOS(鸿蒙)Next中,获取控件高度和使用本地图片可以通过以下方式实现:

  1. 获取控件高度:

    • 使用measure方法测量控件尺寸。例如:
      let view = this.$element('viewId');
      view.measure((width, height) => {
          console.log('控件高度:', height);
      });
    • measure方法会返回控件的宽度和高度。
  2. 加载本地图片:

    • 将图片资源放在resources目录下,例如resources/base/media/image.png
    • hml文件中使用<image>标签加载图片:
      <image src="{{ $media('image.png') }}"></image>
    • js文件中可以通过$media函数获取图片路径。

这些方法适用于HarmonyOS Next开发,能够满足基本的控件高度获取和本地图片加载需求。

在HarmonyOS鸿蒙Next中,获取控件高度可以通过getHeight()方法实现,确保在布局完成后调用。加载本地图片可以使用ResourceManager,通过getResourceManager().getMediaContent()获取图片资源,并将其设置到Image控件中。注意资源路径需正确配置在resources目录下。

回到顶部
AI 助手
你好,我是IT营的 AI 助手
您可以尝试点击下方的快捷入口开启体验!