完善资料让更多小伙伴认识你,还能领取20积分哦, 立即完善>
进行网络操作或者数据库操作的时候,有个载入旋转的的功能,鸿蒙中是什么?一直没有找到
尝试用Progres***ar和RoundProgressBar好像都不行 |
|
相关推荐
1个回答
|
|
HarmonyOS目前没有载入框控件,您可以通过如下代码,实现类似功能:
1、ability_main.xml: ohos:height="match_parent" ohos:width="match_parent" ohos:alignment="center" ohos:orientation="vertical"> ohos:height="300vp" ohos:width="300vp" ohos:layout_alignment="center" ohos:progress_width="20" > 2、MainAbilitySlice.java package com.huawei.cookbook.slice; import com.huawei.cookbook.ResourceTable; import ohos.aafwk.ability.AbilitySlice; import ohos.aafwk.content.Intent; import ohos.agp.components.RoundProgressBar; import ohos.agp.components.element.PixelMapElement; import ohos.global.resource.NotExistException; import ohos.hiviewdfx.HiLog; import ohos.hiviewdfx.HiLogLabel; import ohos.media.image.ImageSource; import ohos.media.image.PixelMap; import ohos.media.image.common.Size; import java.io.IOException; import java.io.InputStream; import java.util.Timer; import java.util.TimerTask; public class MainAbilitySlice extends AbilitySlice { private static final String TAG = MainAbilitySlice.class.getSimpleName(); private static final HiLogLabel LABEL_LOG = new HiLogLabel(0, 0, TAG); private static final String LOG_FORMAT = "%{public}s: %{public}s"; private RoundProgressBar roundProgressBar; private PixelMapElement element; private int rotateDegrees = 0; private int progressValue = 0; private int maxProgressVale = 100; @Override public void onStart(Intent intent) { setUIContent(ResourceTable.Layout_ability_main); roundProgressBar = (RoundProgressBar) findComponentById(ResourceTable.Id_progress); roundProgressBar.setMaxValue(maxProgressVale); Timer timer = new Timer(); timer.schedule(new TimerTask() { @Override public void run() { // 背景图片旋转角度 if (rotateDegrees < 360) { // 每秒旋转角度 rotateDegrees += 20; } else { rotateDegrees = 0; } // 进度变化 if (maxProgressVale > progressValue) { progressValue += 10; } else { progressValue = 0; } // 这里设置的背景图片可以根据自己的需求去选择图片 element = new PixelMapElement(transIdToPixelMap(rotateDegrees, ResourceTable.Media_loading, 50, 50)); element.setFilterPixelMap(true); getUITaskDispatcher().asyncDispatch(new Runnable() { @Override public void run() { // 设置进度 roundProgressBar.setProgressValue(progressValue); // 进度条背景图片 roundProgressBar.setBackground(element); } }); } }, 0, 1000); super.onStart(intent); } // 将本地图片resId转换成PixelMap private PixelMap transIdToPixelMap(int rotateDegrees, int resId, int width, int height) { InputStream source = null; ImageSource imageSource = null; try { source = getContext().getResourceManager().getResource(resId); imageSource = ImageSource.create(source, null); ImageSource.DecodingOptions decodingOpts = new ImageSource.DecodingOptions(); decodingOpts.desiredSize = new Size(width, height); decodingOpts.rotateDegrees = rotateDegrees; return imageSource.createPixelmap(decodingOpts); } catch (IOException | NotExistException e) { HiLog.error(LABEL_LOG, LOG_FORMAT, TAG, "getPixelMap error"); } finally { try { source.close(); } catch (IOException e) { HiLog.error(LABEL_LOG, LOG_FORMAT, TAG,"getPixelMap source close error"); } } return PixelMap.create(null); } } |
|
|
|
你正在撰写答案
如果你是对答案或其他答案精选点评或询问,请使用“评论”功能。
掰掉卫星电话的外置天线,华为“天才少年”助力 Mate 捅破天
4731 浏览 0 评论
1195 浏览 2 评论
华秋电子 | 电子发烧友亮相OpenHarmony人才生态大会2024
2275 浏览 0 评论
OpenHarmony有 支持的分布式数据库吗? 自动同步各节点数据?
1627 浏览 0 评论
OpenHarmony人才生态大会南向生态社区发展论坛在武汉圆满举办
1223 浏览 0 评论
小黑屋| 手机版| Archiver| 电子发烧友 ( 湘ICP备2023018690号 )
GMT+8, 2024-12-20 08:42 , Processed in 0.672483 second(s), Total 92, Slave 76 queries .
Powered by 电子发烧友网
© 2015 bbs.elecfans.com
关注我们的微信
下载发烧友APP
电子发烧友观察
版权所有 © 湖南华秋数字科技有限公司
电子发烧友 (电路图) 湘公网安备 43011202000918 号 电信与信息服务业务经营许可证:合字B2-20210191 工商网监 湘ICP备2023018690号