先看看实现效果图

1.首先自定义一个类继承系统ProgressDialog

  1. /**
  2. * Created by hanbao0928 on 2018/11/1.
  3. */
  4.  
  5. public class DialogUtils extends ProgressDialog {
  6. public DialogUtils(Context context) {
  7. super(context);
  8. }
  9.  
  10. public DialogUtils(Context context, int theme) {
  11. super(context, theme);
  12. }
  13.  
  14. @Override
  15. protected void onCreate(Bundle savedInstanceState) {
  16. super.onCreate(savedInstanceState);
  17.  
  18. init(getContext());
  19. }
  20.  
  21. private void init(Context context) {
  22. setCancelable(true);
  23. setCanceledOnTouchOutside(false);
  24.  
  25. setContentView(R.layout.loading);//loading的xml文件
  26. WindowManager.LayoutParams params = getWindow().getAttributes();
  27. params.width = WindowManager.LayoutParams.WRAP_CONTENT;
  28. params.height = WindowManager.LayoutParams.WRAP_CONTENT;
  29. getWindow().setAttributes(params);
  30. }
  31.  
  32. @Override
  33. public void show() {//开启
  34. super.show();
  35. }
  36.  
  37. @Override
  38. public void dismiss() {//关闭
  39. super.dismiss();
  40. }
  41. }

2.设置loading布局文件

  1. <LinearLayout xmlns:android="http://schemas.android.com/apk/res/android"
  2. android:layout_width="100dp"
  3. android:layout_height="100dp"
  4. android:layout_gravity="center_horizontal"
  5. android:background="@drawable/shape_dialog_bg"//背景色
  6. android:layout_centerInParent="true"
  7. android:orientation="vertical">
  8.  
  9. <RelativeLayout
  10. android:layout_width="match_parent"
  11. android:layout_height="wrap_content"
  12. android:layout_marginTop="10dp">
  13.  
  14. <ProgressBar
  15. android:id="@+id/pb_load"
  16. android:layout_width="65dp"
  17. android:layout_height="65dp"
  18. android:indeterminateDrawable="@drawable/progressbar"//加载圈的样式
  19. android:layout_centerInParent="true"/>
  20.  
  21. </RelativeLayout>
  22.  
  23. <TextView
  24. android:id="@+id/tv_load_dialog"
  25. android:layout_width="wrap_content"
  26. android:layout_height="wrap_content"
  27. android:layout_gravity="center_horizontal"
  28. android:text="加载中..."
  29. android:textColor="#9a9b98"
  30. android:textSize="12sp"/>
  31.  
  32. </LinearLayout>

3.背景色(可自行调整)

  1. <?xml version="1.0" encoding="utf-8"?>
  2. <shape xmlns:android="http://schemas.android.com/apk/res/android" >
  3.  
  4. <corners android:radius="8dp" />
  5. <solid android:color="#88000000" />
  6. </shape>

4.加载圈样式(可自行调整)

  1. <animated-rotate
  2. xmlns:android="http://schemas.android.com/apk/res/android"
  3. android:pivotX="50%" android:pivotY="50%"
  4. android:fromDegrees="0"
  5. android:toDegrees="720">
  6.  
  7. <shape
  8. android:shape="ring"
  9. android:innerRadiusRatio="3"
  10. android:thicknessRatio="15"
  11. android:useLevel="false">
  12. <gradient
  13. android:type="sweep"
  14. android:useLevel="false"
  15. android:startColor="#55c6c6c6"
  16. android:centerColor="#c6c6c6"
  17. android:centerY="0.50"
  18. android:endColor="#c6c6c6" />
  19. </shape>
  20.  
  21. </animated-rotate>

5.原来需要在创建自定义的loading 的时候在传入 new Loading_view(this,R.style.CustomDialog);样式

  1. <style name="CustomDialog" parent="Theme.AppCompat.Dialog">
  2. <item name="android:backgroundDimEnabled">false</item>
  3. <item name="android:windowBackground">@android:color/transparent</item>
  4. </style>

6.代码中使用

  1. public class MainActivity extends AppCompatActivity {
  2.  
  3. private DialogUtils loading;
  4.  
  5. @Override
  6. protected void onCreate(Bundle savedInstanceState) {
  7. super.onCreate(savedInstanceState);
  8. setContentView(R.layout.activity_main);
  9.  
  10. }
  11.  
  12. public void loding(View v){//点击加载并按钮模仿网络请求
  13.  
  14. loading = new DialogUtils(this,R.style.CustomDialog);
  15. loading.show();
  16. new Handler().postDelayed(new Runnable() {//定义延时任务模仿网络请求
  17. @Override
  18. public void run() {
  19. loading.dismiss();//3秒后调用关闭加载的方法
  20. }
  21. }, 1000);
  22. }
  23. }

ok  这样就实现菊花加载效果啦!!!!

Android 菊花加载工具类的更多相关文章

  1. 161216、使用spring的DefaultResourceLoader自定义properties文件加载工具类

    import java.io.IOException; import java.io.InputStream; import java.util.NoSuchElementException; imp ...

  2. 使用spring的DefaultResourceLoader自定义properties文件加载工具类

    转自:https://www.cnblogs.com/zrbfree/p/6230957.html import java.io.IOException; import java.io.InputSt ...

  3. android实现异步加载图片类

    其中牵涉到的关键知识点 1,回调机制,不过回调接口的实现方式有多种多样,可以是一个类继承该接口,也可以是作为一个方法参数: 可以参照自己的这篇博客: http://www.cnblogs.com/bo ...

  4. Android图片加载框架最全解析(八),带你全面了解Glide 4的用法

    本篇将是我们这个Glide系列的最后一篇文章. 其实在写这个系列第一篇文章的时候,Glide就推出4.0.0的RC版了.那个时候因为我一直研究的都是Glide 3.7.0版本,再加上RC版本还不太稳定 ...

  5. Android应用开发提高系列(4)——Android动态加载(上)——加载未安装APK中的类

    前言 近期做换肤功能,由于换肤程度较高,受限于平台本身,实现起来较复杂,暂时搁置了该功能,但也积累了一些经验,将分两篇文章来写这部分的内容,欢迎交流! 关键字:Android动态加载 声明 欢迎转载, ...

  6. 在Android的App中动态的加载Java类

    原文的地址:http://yenliangl.blogspot.com/2009/11/dynamic-loading-of-classes-in-your.html 我正在编写一个应用程序能够加载别 ...

  7. [转载] Android动态加载Dex机制解析

    本文转载自: http://blog.csdn.net/wy353208214/article/details/50859422 1.什么是类加载器? 类加载器(class loader)是 Java ...

  8. Android图片加载库的理解

    前言     这是“基础自测”系列的第三篇文章,以Android开发需要熟悉的20个技术点为切入点,本篇重点讲讲Android中的ImageLoader这个库的一些理解,在Android上最让人头疼是 ...

  9. Android 动态加载 (一) 态加载机制 案例一

    在目前的软硬件环境下,Native App与Web App在用户体验上有着明显的优势,但在实际项目中有些会因为业务的频繁变更而频繁的升级客户端,造成较差的用户体验,而这也恰恰是Web App的优势.本 ...

随机推荐

  1. js无间隙向上滚动

    一.优点:div可以load:缺点:滚动的时候有点娘,磨磨唧唧,不够干脆爽快 html <div id="my_msg" class="my-msg bg-whit ...

  2. MySQL-count(*)和count(1)的查询区别

    一般情况下,Select Count (*)和Select Count(1)两着返回结果是一样的 假如表沒有主键(Primary key), 那么count(1)比count(*)快, 如果有主键的話 ...

  3. 如何限制指定textFiled第三方输入法切换

    在有些项目中需要用到输入纯数字的键盘,并且还不能切换到第三方输入法! textFiled.secureTextEntry = YES; [textFiled addTarget:self action ...

  4. 部分视图 - partial

    对于partia来说,可以理解为组件化的运用,即将对应的html/js/css进行封装,然后通过模板引擎直接进行调用 1.partial的注册 //可以直接写在app.js,也可以写在之前所说的hel ...

  5. Angular 引入第三方框架方法(如Jquery,Bootstrap)

    1.npm i jquery --save    /    npm i bootstrap --save 2.angular.json 引入路径 3.引入Jquery和Bootstrap的类型描述文件 ...

  6. 配置NFS

    主机端 sudo apt-get install nfs-kernel-server 修改配置文件 sudo vim /etc/exports 添加: /home/nfs/fs_qtopia *(rw ...

  7. leetcode每日刷题计划-简单篇day9

    Num 38 报数 Count and Say 题意读起来比较费劲..看懂了题还是不难的 注意最后的长度是sz的长度,开始写错写的len 在下次计算的时候len要更新下 说明 直接让char和int进 ...

  8. Golang 包管理简介

    Golang 包管理 在一个项目里,如果想引用本地包,经常会把新手搞的莫名其妙.这里通俗记录一下. 首先先要知道几个默认的规则 必须定义环境变量GOPATH,GOPATH可以定义多个目录 所有项目代码 ...

  9. win10 .net3.5的问题及解决方案

    近日有网友反映在windows10_64位系统电脑上安装Net framework3.5,操作时总失败,怎么办呢?小编下面就介绍win10 64位系统无法安装Net framework3.5的两种解决 ...

  10. 读取tensorflow的checkpoint里保存的参数

    import tensorflow as tf from tensorflow.python import pywrap_tensorflow import os checkpoint_path = ...