1.定义一个LoadingView类,继承ImageView控件,实现其中的方法:

public class LoadingView extends androidx.appcompat.widget.AppCompatImageView {
private float mDegress=0;
private boolean mNeedRotate=true;public LoadingView(Context context) {this(context,null);}public LoadingView(Context context, @Nullable AttributeSet attrs) {this(context, attrs,0);}public LoadingView(Context context, @Nullable AttributeSet attrs, int defStyleAttr) {super(context, attrs, defStyleAttr);setImageResource(R.mipmap.loading);//将加载的转圈圈图标导入}

2.重写onAttachedToWindow(),onDetachedFromWindow(),onDraw(Canvas canvas)方法

@Override
protected void onAttachedToWindow() {super.onAttachedToWindow();mNeedRotate=true;StartRotate();
}
//注意,此方法要保证在调用onDraw(Canvas) 之前调用,但可能在调用 onDraw(Canvas) 之前的任何时刻,包括调用 onMeasure(int, int) 之前或之后。
@Override
protected void onDetachedFromWindow() {super.onDetachedFromWindow();stopRotate();
}
@Override
protected void onDraw(Canvas canvas) {canvas.rotate(mDegress,getWidth()/2,getHeight()/2);super.onDraw(canvas);
}

在 StartRotate()开启子线程进行转圈圈的循环耗时操作:

private void StartRotate() {post(new Runnable() {@Overridepublic void run() {/*每次旋转加10的角度*/mDegress+=10;if (mDegress>360) {mDegress=0;}invalidate();/*判断是否继续进行旋转*/if (getVisibility()!=VISIBLE&&!mNeedRotate) {removeCallbacks(this);//释放转圈圈的资源}else {postDelayed(this,20);设置转圈圈的时间间隔}}});
}

停止转圈圈:

private void stopRotate() {mNeedRotate= false;
}

最后将LoadingView的copy refrence,设置进界面进行加载的Loading状态中即可。

android中设置网络加载的转圈圈图标相关推荐

  1. android动态设置错误页面,Android中替换WebView加载网页失败时的页面

    我们用webView去请求一个网页链接的时候,如果请求网页失败或无网络的情况下,它会返回给我们这样一个页面,如下图所示: 上面这个页面就是系统自带的页面,你觉得是不是很丑?反正小编本人觉得非常丑,很难 ...

  2. Android中的图片加载

    Android中的图片加载所出现的问题 在Android的开发中,经常需要去加载图片,但是图片的尺寸有时候往往会很大,而我们的内存是有限的,加载进来的时候很有可能会造成内存溢出,这种结果也是我们不想看 ...

  3. Android中获取WebView加载的html中console.log输出的内容

    场景 Android中使用WebView加载本地html并支持运行JS代码和支持缩放: Android中使用WebView加载本地html并支持运行JS代码和支持缩放_BADAO_LIUMANG_QI ...

  4. android fragment加载布局的方式,Android中Fragment的加载方式与数据通信详解

    Android中Fragment的加载方式与数据通信详解 发布时间:2020-08-22 18:55:57 来源:脚本之家 阅读:155 作者:Joah 一.加载方式 1. 静态加载 1.1 加载步骤 ...

  5. android 实现异步加载图片,Android中ImageView异步加载图片类

    本源码是从网络找到经修改以方便直接调用感觉用着还可以 首先在项目中添加一个专门加载图片的类AsyncImageLoaderpackage com.demo.core; import java.io.I ...

  6. 浅谈Android中的异步加载之ListView中图片的缓存及优化三

    隔了很久没写博客,现在必须快速脉动回来.今天我还是接着上一个多线程中的异步加载系列中的最后一个使用异步加载实现ListView中的图片缓存及其优化.具体来说这次是一个综合Demo.但是个人觉得里面还算 ...

  7. Android中使用ImageLoader加载图片

    Android上让人头疼的莫过于从网络上获取图片,然后显示图片,最后还要考虑到图片的回收问题,这之间只要有任何一个环节有问题都可能直接OOM.尤其在需要展示图片的列表页面,会加载大量网络上的图片,每当 ...

  8. Android中使用WebView加载本地html并支持运行JS代码和支持缩放

    场景 Openlayers中使用Image的rotation实现车辆定位导航带转角(判断车辆图片旋转角度): https://blog.csdn.net/BADAO_LIUMANG_QIZHI/art ...

  9. Android中ListView分页加载数据

    熟悉Android的朋友们都知道,不管是微博客户端还是新闻客户端,都离不开列表组件,可以说列表组件是Android数据展现方面最重要的组件,我们今天就要讲一讲列表组件ListView加载数据的相关内容 ...

最新文章

  1. 斯坦福AI 5小时DNA测序破世界纪录!创人类新里程碑,成本仅3万
  2. jenkins+maven+Tomcat+shell构建自动化部署
  3. 复旦高等代数 II(17级)每周一题
  4. HDU2683——欧拉完全数
  5. 软件工程(总体设计①设计过程)
  6. rabbitmq如何清空queue队列数据
  7. python 解析json typeerror_TypeError:在使用Python解析JSON时,字符串索引必须是整数?...
  8. 图解 hexo + github 从零快速 搭建个人博客 windowss
  9. 动画会震一下css,csshake.css强大的CSS3元素抖动动画库
  10. html 日期选择器 ie8,兼容IE8的简单jQuery日期选择器插件
  11. 从三个方面理解ARM嵌入式系统
  12. taptap APP端 产品体验的一点分析报告
  13. C语言 分解质因数。例如:输入90,打印出90=2*3*3*5。
  14. win10 2016 长期服务版的ISO文件中本身就带有KMS激活KEY
  15. Android实现可编辑下拉菜单
  16. 莫名其妙把电脑机箱左边耳机孔弄出来声音
  17. PowerPoint课件动画制作三例
  18. ubuntu 18.04 netplan 配置多网卡、多路由、多ip
  19. 各类国外软件国内下载镜像合集
  20. iOS开发常用第三方框架

热门文章

  1. JSP页面使用JS把数组封装成对象
  2. fgo终章服务器维护,FGO终局特异点攻略 终章配置及奖励详细介绍
  3. win10如何打开摄像头_Win10专业版如何开启自带录屏功能?Win10录屏功能的开启方法...
  4. 【Apache 网页优化】
  5. 2020年江苏专转本计算机知识点,2020年江苏专转本计算机真题及答案(供参考).pdf...
  6. ffmpeg 切片花屏_FFmpeg相机花屏花图问题解决方法
  7. 商城SPU、SKU数据库设计
  8. 佳能打印机LBP2900 MAC电脑驱动解决方案-2023
  9. php 文本数不自动换行,解决留言板中文自动换行,纯数字或英文字母不换行问题...
  10. angularjs2 mysql_AngularJS2初学小结