HarmonyOS鸿蒙Next中Image控件是否可以加载SVG格式的图片?
HarmonyOS鸿蒙Next中Image控件是否可以加载SVG格式的图片? 按照官方文档的说明把一张svg格式的图片成功转换位xx.xml后存在graphic目录下,有没有谁试过如果把这个svg图片给显示到Image控件上呢?
Image控件动态改变要显示的图片似乎是使用setImageAndDecodeBounds方法,但如果id直接传svg的资源会直接闪退。
试了另外种方法:
VectorElement ve = new VectorElement(this, ResourceTable.Graphic_svg_icon_ccb);
icon.setImageElement(ve);
报错是不报了,但同样图片显示不出来。求教各位
更多关于HarmonyOS鸿蒙Next中Image控件是否可以加载SVG格式的图片?的实战教程也可以访问 https://www.itying.com/category-93-b0.html
开发者你好,Image控件可以加载SVG格式的图片。
xml中加载引用如下
ohos:background_element="$graphic:button_element",
可参见 https://developer.harmonyos.com/cn/docs/documentation/doc-guides/start-first-page-0000000000038014 有使用到
java文件中的使用方法如下
Component imageView = root.findComponentById(ResourceTable.Id_sleep_moon_img);
imageView.setBackground(new VectorElement(context, ResourceTable.Graphic_ic_icon_moon));
更多关于HarmonyOS鸿蒙Next中Image控件是否可以加载SVG格式的图片?的实战系列教程也可以访问 https://www.itying.com/category-93-b0.html
最近在用一个第三方组件,我发现它在直接用Image的setPixelMap()加载SVG图片会失败。提示信息是:
Got a deoptimization request on un-deoptimizable method ohos.media.image.PixelMap ohos.media.image.ImageSource.nativeCreatePixelmap(ohos.media.image.ImageSource, long, int, ohos.media.image.ImageSource$DecodingOptions)
是不是意味着不能够直接使用这个方法来设置SVG图片呢?或者说,我的问题是,如何直接给Image对象设置SVG图片?
原来的代码 (原来的这个代码会crash)
mTabImage.setPixelMap(tabInfo.defaultImage);
我修改的代码 (好像是可行的)
mTabImage.setImageElement(new VectorElement(getContext(), tabInfo.defaultImage));
问题2: 有什么办法提前判断图片的类型?比如判断图片是位图还是矢量图
总的来说,HarmonyOS是一款非常优秀的操作系统,期待它能在未来带给我们更多惊喜!
同样问题遇到过,LZ找到解决方案了吗
看来没人研究过 自顶一下
亲爱滴开发者 ,这个问题已经在处理中啦,稍后答复你哟 ,么么哒
在HarmonyOS鸿蒙Next中,Image
控件可以加载SVG格式的图片。鸿蒙系统提供了对SVG格式的支持,开发者可以通过Image
控件直接加载并显示SVG图片。SVG作为一种矢量图形格式,具有缩放不失真、文件体积小等优点,适合在多种设备上使用。鸿蒙Next中,Image
控件通过内置的解析器可以正确解析和渲染SVG文件,确保在不同分辨率的设备上都能获得清晰的显示效果。开发者只需将SVG文件路径或资源ID传递给Image
控件即可实现加载。
在HarmonyOS鸿蒙Next中,Image
控件目前主要支持加载常见的位图格式(如PNG、JPEG等),而SVG格式作为矢量图形,尚未直接支持通过Image
控件加载。若需使用SVG格式图片,建议将SVG转换为其他支持的格式或使用第三方库进行解析和渲染。未来鸿蒙系统可能会增加对SVG格式的原生支持,请持续关注官方更新。