当前位置:   article > 正文

【Harmony OS】【JAVA UI】webView动画加载资源加载动画交互_webview设置加载动画

webview设置加载动画

 在HarmonyOS中webview加载网页的时候,需要有进度条,或者加载动画进行用户感知的交互,这样可以优化用户体验,因此今天写一篇加载动画(效果如下)用于同学们进行学习,怎么实现?首先我们需要学习“CommonDialog”“ WebView”“动画开发指导”三个知识储备

我们分为“准备阶段”,“自定义CommonDialog实现”,“动画实现”,“webview的实现”,“运行效果”五个步骤进行实现。

20220119-090152(WeLinkPC).gif

1.准备阶段

在resources \base\ media\目录下准备一张loading图片(图片如下)存放位置如下

image.png

Loading图片

image.png

存放位置

2.       自定义CommonDialog的实现

2.1新建xml命名为general_dialog.xml,在该xml文件绘画一张图片(代码如下)

  1. <?xml version="1.0" encoding="utf-8"?>
  2. <DirectionalLayout
  3. xmlns:ohos="http://schemas.huawei.com/res/ohos"
  4. ohos:height="80vp"
  5. ohos:orientation="vertical"
  6. ohos:alignment="center"
  7. ohos:width="80vp">
  8. <Image
  9. ohos:id="$+id:loading"
  10. ohos:height="match_parent"
  11. ohos:width="match_parent"
  12. ohos:scale_mode="clip_center"
  13. ohos:image_src="$media:loading"/>
  14. </DirectionalLayout>

效果图如下

image.png

2.2新建GeneralDialog文件,我们参考HarmonyOS 的自定义CommonDialog场景示例

具体代码如下

  1. package com.harmony.alliance.mydemo.utils;
  2. import java.util.Optional;
  3. import com.harmony.alliance.mydemo.ResourceTable;
  4. import ohos.agp.animation.Animator;
  5. import ohos.agp.animation.AnimatorProperty;
  6. import ohos.agp.animation.AnimatorValue;
  7. import ohos.agp.colors.RgbColor;
  8. import ohos.agp.components.*;
  9. import ohos.agp.components.element.ShapeElement;
  10. import ohos.agp.utils.LayoutAlignment;
  11. import ohos.agp.window.dialog.CommonDialog;
  12. import ohos.agp.window.service.WindowManager;
  13. import ohos.app.Context;
  14. public class GeneralDialog {
  15. private float dim = -1f;
  16. private CommonDialog sDialog;
  17. private Context mContext;
  18. private boolean mOutsideTouchClosable = false;
  19. public GeneralDialog(Context context){
  20. this.mContext=context;
  21. }
  22. public void show() {
  23. if (sDialog != null) {
  24. sDialog.show();
  25. if (dim >= 0) {
  26. changeDialogDim(sDialog, dim);
  27. }
  28. }
  29. }
  30. public void remove(){
  31. if (sDialog != null) {
声明:本文内容由网友自发贡献,不代表【wpsshop博客】立场,版权归原作者所有,本站不承担相应法律责任。如您发现有侵权的内容,请联系我们。转载请注明出处:https://www.wpsshop.cn/w/IT小白/article/detail/306031
推荐阅读
相关标签
  

闽ICP备14008679号