Iamge组件如何加载Graphic的资源图片?

在layout的xml文件中Image组件可以通过src直接应用graphic中的xml的图片资源,但是如何在代码中动态引用呢?因为要动态进行更改

image.setPixelMap()会报“ohos.media.image.SourceDataMalformedException: image decode failed”的错误,转成PixelMap类型也报上诉错误。

我使用的转pixelmap代码:

private PixelMap getGraphicPixelMap(int resourceId) throws IOException {
    InputStream source = null;
    PixelMap pixelmap = null;
    try {
        source = this.getResourceManager().getResource(resourceId);
        ImageSource imageSource = ImageSource.create(source, null);
        ImageSource.DecodingOptions decodingOpts = new ImageSource.DecodingOptions();
        decodingOpts.desiredSize = new Size(100, 100);
        pixelmap = imageSource.createPixelmap(decodingOpts);
    } catch (IOException | NotExistException e) {
        e.getLocalizedMessage();
    } finally {
        assert source != null;
        source.close();
    }
    return pixelmap;
}

那如何在代码中动态应用graphic中xml类型图片资源呢?

鸿蒙
Iamge
组件
2021-12-10 09:48:46
浏览
收藏 0
回答 1
待解决
回答 1
按赞同
/
按时间
duggins

“image加载graphic中的xml的图片资源”楼主说的是矢量图吧。

目前我只知道一种办法:使用setBackground方法,代码如下,希望能帮到你。

1、xml中,需要设置宽高具体的数值,否则不显示(部分代码)

    <Image
        ohos:id="$+id:image"
        ohos:height="50vp"
        ohos:width="50vp"
        ohos:background_element="$graphic:ic_home"/>

2、ability中代码设置(部分代码)

            VectorElement vectorElement = new VectorElement(getContext(), ResourceTable.Graphic_ic_person);
            image.setBackground(vectorElement);

 

分享
微博
QQ
微信
回复
2021-12-10 14:46:12
相关问题
如何使用Image加载沙箱路径图片资源
212浏览 • 1回复 待解决
Image组件如何加载沙盒内图片
996浏览 • 1回复 待解决
Image组件如何加载网络图片
1207浏览 • 1回复 待解决
如何禁止web组件自动加载图片
416浏览 • 1回复 待解决
如何显示通过网络加载图片
1381浏览 • 1回复 待解决
png图片使用Image组件加载出现锯齿
654浏览 • 1回复 待解决
OpenHarmony 小型系统如何加载gif图片
4180浏览 • 1回复 待解决
鸿蒙图片资源在Java代码中如何使用
6873浏览 • 1回复 待解决
找不到图片和布局资源
10722浏览 • 8回复 待解决
Web组件加载如何实现?
509浏览 • 1回复 待解决
如何直接加载二进制流图片
1524浏览 • 1回复 待解决
canvas怎么绘制资源目录下图片
281浏览 • 1回复 待解决
Image组件如何读入沙箱内图片
1336浏览 • 1回复 待解决
Text 组件如何加载Unicode字符
721浏览 • 1回复 待解决