TabList中的setIconElement 这个怎么使用?
TabList中的setIconElement 这个怎么使用?
鸿蒙
HarmonyOS
TabList
赞
收藏 0
回答 1
待解决
相关问题
TabList可以添加图片么?
5123浏览 • 3回复 待解决
minCompatibleVersionCode 这个怎么配置?
1559浏览 • 1回复 待解决
请问js2java-codegen这个工具,java中的异步方法结果怎么回传?
2582浏览 • 1回复 待解决
JS API 中 web组件 怎么使用
2454浏览 • 1回复 待解决
在继承FractionAbility声明定义TabList在layout中显示不出来
4299浏览 • 3回复 待解决
这个swipe事件怎么写啊?
6633浏览 • 2回复 待解决
TabList find返回总为null的问题请教
4797浏览 • 5回复 待解决
鸿蒙tablist 如何通过滑动切换页面?
3342浏览 • 1回复 待解决
有大佬知道怎么解决这个问题吗?
3534浏览 • 1回复 待解决
在openharmony中 ENABLE_ROSEN_BACKEND 这个宏控制的是什么功能的?
2192浏览 • 1回复 待解决
鸿蒙的应用开发工具这个DevEco Studio怎么升级?
3019浏览 • 1回复 待解决
关于xml中include的使用问题
4700浏览 • 2回复 待解决
harmonyOS 这个加载圈 java 自带这个吗?
1152浏览 • 1回复 待解决
JS中的Textarea组件中的value属性无法正常使用,如何解决
8783浏览 • 2回复 待解决
点击一个list的item,怎么给这个item添加class
3651浏览 • 1回复 待解决
这个iot板子的镜像谁有
5296浏览 • 1回复 已解决
DevEco Device Tool 2.1一直loading,这个怎么解决?
4094浏览 • 1回复 已解决
Tablist 点击超出部分的tab触发点击事件 但是整个列表会自动跳回到最前面 请问怎么解决?
2421浏览 • 1回复 待解决
鸿蒙手机应用开发中的Camera功能要如何使用
9165浏览 • 3回复 已解决
js api 中select组件如何使用
4162浏览 • 2回复 已解决
实际业务中推荐使用hint吗?
1315浏览 • 1回复 待解决
鸿蒙webview中怎么注入JS方法让网页中的JS调用
5354浏览 • 1回复 待解决
在Redis的使用中,热Key会给Redis带来哪些常见的的问题?
567浏览 • 1回复 待解决
TS API 附录中的 系统资源 的 ID值 应该如何使用?
1011浏览 • 1回复 待解决
可参考如下代码:
public void setTabIcon(TabList.Tab tab) {
//ResourceTable.Media_icon 为项目图片资源ID,通过resourceID获取PixelMap对象
Optional<PixelMap> pixelMapOptional = createPixelMapByResId(ResourceTable.Media_icon);
//创建PixelMapElement对象
PixelMapElement bitmapDrawable = new PixelMapElement(pixelMapOptional.get());
//给tab设置IconElement
tab.setIconElement(bitmapDrawable);
}
public Optional<PixelMap> createPixelMapByResId(int resourceId) {
ResourceManager manager = this.getContext().getResourceManager();
if (manager == null) {
return Optional.empty();
}
try (Resource resource = manager.getResource(resourceId)) {
if (resource == null) {
return Optional.empty();
}
ImageSource.SourceOptions srcOpts = new ImageSource.SourceOptions();
srcOpts.formatHint = "image/png";
ImageSource imageSource = ImageSource.create(readResource(resource), srcOpts);
if (imageSource == null) {
return Optional.empty();
}
ImageSource.DecodingOptions decodingOpts = new ImageSource.DecodingOptions();
decodingOpts.desiredSize = new Size(0, 0);
decodingOpts.desiredRegion = new Rect(0, 0, 0, 0);
decodingOpts.desiredPixelFormat = PixelFormat.ARGB_8888;
return Optional.of(imageSource.createPixelmap(decodingOpts));
} catch (NotExistException | IOException e) {
return Optional.empty();
}
}
private byte[] readResource(Resource resource) {
final int bufferSize = 1024;
final int ioEnd = -1;
byte[] byteArray;
byte[] buffers = new byte[bufferSize];
try (ByteArrayOutputStream output = new ByteArrayOutputStream()) {
while (true) {
int readLen = resource.read(buffers, 0, bufferSize);
if (readLen == ioEnd) {
byteArray = output.toByteArray();
break;
}
output.write(buffers, 0, readLen);
}
} catch (IOException e) {
return new byte[0];
}
return byteArray;
}