Android 菊花加载工具类
先看看实现效果图
1.首先自定义一个类继承系统ProgressDialog
- /**
- * Created by hanbao0928 on 2018/11/1.
- */
- public class DialogUtils extends ProgressDialog {
- public DialogUtils(Context context) {
- super(context);
- }
- public DialogUtils(Context context, int theme) {
- super(context, theme);
- }
- @Override
- protected void onCreate(Bundle savedInstanceState) {
- super.onCreate(savedInstanceState);
- init(getContext());
- }
- private void init(Context context) {
- setCancelable(true);
- setCanceledOnTouchOutside(false);
- setContentView(R.layout.loading);//loading的xml文件
- WindowManager.LayoutParams params = getWindow().getAttributes();
- params.width = WindowManager.LayoutParams.WRAP_CONTENT;
- params.height = WindowManager.LayoutParams.WRAP_CONTENT;
- getWindow().setAttributes(params);
- }
- @Override
- public void show() {//开启
- super.show();
- }
- @Override
- public void dismiss() {//关闭
- super.dismiss();
- }
- }
2.设置loading布局文件
- <LinearLayout xmlns:android="http://schemas.android.com/apk/res/android"
- android:layout_width="100dp"
- android:layout_height="100dp"
- android:layout_gravity="center_horizontal"
- android:background="@drawable/shape_dialog_bg"//背景色
- android:layout_centerInParent="true"
- android:orientation="vertical">
- <RelativeLayout
- android:layout_width="match_parent"
- android:layout_height="wrap_content"
- android:layout_marginTop="10dp">
- <ProgressBar
- android:id="@+id/pb_load"
- android:layout_width="65dp"
- android:layout_height="65dp"
- android:indeterminateDrawable="@drawable/progressbar"//加载圈的样式
- android:layout_centerInParent="true"/>
- </RelativeLayout>
- <TextView
- android:id="@+id/tv_load_dialog"
- android:layout_width="wrap_content"
- android:layout_height="wrap_content"
- android:layout_gravity="center_horizontal"
- android:text="加载中..."
- android:textColor="#9a9b98"
- android:textSize="12sp"/>
- </LinearLayout>
3.背景色(可自行调整)
- <?xml version="1.0" encoding="utf-8"?>
- <shape xmlns:android="http://schemas.android.com/apk/res/android" >
- <corners android:radius="8dp" />
- <solid android:color="#88000000" />
- </shape>
4.加载圈样式(可自行调整)
- <animated-rotate
- xmlns:android="http://schemas.android.com/apk/res/android"
- android:pivotX="50%" android:pivotY="50%"
- android:fromDegrees="0"
- android:toDegrees="720">
- <shape
- android:shape="ring"
- android:innerRadiusRatio="3"
- android:thicknessRatio="15"
- android:useLevel="false">
- <gradient
- android:type="sweep"
- android:useLevel="false"
- android:startColor="#55c6c6c6"
- android:centerColor="#c6c6c6"
- android:centerY="0.50"
- android:endColor="#c6c6c6" />
- </shape>
- </animated-rotate>
5.原来需要在创建自定义的loading 的时候在传入 new Loading_view(this,R.style.CustomDialog);样式
- <style name="CustomDialog" parent="Theme.AppCompat.Dialog">
- <item name="android:backgroundDimEnabled">false</item>
- <item name="android:windowBackground">@android:color/transparent</item>
- </style>
6.代码中使用
- public class MainActivity extends AppCompatActivity {
- private DialogUtils loading;
- @Override
- protected void onCreate(Bundle savedInstanceState) {
- super.onCreate(savedInstanceState);
- setContentView(R.layout.activity_main);
- }
- public void loding(View v){//点击加载并按钮模仿网络请求
- loading = new DialogUtils(this,R.style.CustomDialog);
- loading.show();
- new Handler().postDelayed(new Runnable() {//定义延时任务模仿网络请求
- @Override
- public void run() {
- loading.dismiss();//3秒后调用关闭加载的方法
- }
- }, 1000);
- }
- }
ok 这样就实现菊花加载效果啦!!!!
Android 菊花加载工具类的更多相关文章
- 161216、使用spring的DefaultResourceLoader自定义properties文件加载工具类
import java.io.IOException; import java.io.InputStream; import java.util.NoSuchElementException; imp ...
- 使用spring的DefaultResourceLoader自定义properties文件加载工具类
转自:https://www.cnblogs.com/zrbfree/p/6230957.html import java.io.IOException; import java.io.InputSt ...
- android实现异步加载图片类
其中牵涉到的关键知识点 1,回调机制,不过回调接口的实现方式有多种多样,可以是一个类继承该接口,也可以是作为一个方法参数: 可以参照自己的这篇博客: http://www.cnblogs.com/bo ...
- Android图片加载框架最全解析(八),带你全面了解Glide 4的用法
本篇将是我们这个Glide系列的最后一篇文章. 其实在写这个系列第一篇文章的时候,Glide就推出4.0.0的RC版了.那个时候因为我一直研究的都是Glide 3.7.0版本,再加上RC版本还不太稳定 ...
- Android应用开发提高系列(4)——Android动态加载(上)——加载未安装APK中的类
前言 近期做换肤功能,由于换肤程度较高,受限于平台本身,实现起来较复杂,暂时搁置了该功能,但也积累了一些经验,将分两篇文章来写这部分的内容,欢迎交流! 关键字:Android动态加载 声明 欢迎转载, ...
- 在Android的App中动态的加载Java类
原文的地址:http://yenliangl.blogspot.com/2009/11/dynamic-loading-of-classes-in-your.html 我正在编写一个应用程序能够加载别 ...
- [转载] Android动态加载Dex机制解析
本文转载自: http://blog.csdn.net/wy353208214/article/details/50859422 1.什么是类加载器? 类加载器(class loader)是 Java ...
- Android图片加载库的理解
前言 这是“基础自测”系列的第三篇文章,以Android开发需要熟悉的20个技术点为切入点,本篇重点讲讲Android中的ImageLoader这个库的一些理解,在Android上最让人头疼是 ...
- Android 动态加载 (一) 态加载机制 案例一
在目前的软硬件环境下,Native App与Web App在用户体验上有着明显的优势,但在实际项目中有些会因为业务的频繁变更而频繁的升级客户端,造成较差的用户体验,而这也恰恰是Web App的优势.本 ...
随机推荐
- js无间隙向上滚动
一.优点:div可以load:缺点:滚动的时候有点娘,磨磨唧唧,不够干脆爽快 html <div id="my_msg" class="my-msg bg-whit ...
- MySQL-count(*)和count(1)的查询区别
一般情况下,Select Count (*)和Select Count(1)两着返回结果是一样的 假如表沒有主键(Primary key), 那么count(1)比count(*)快, 如果有主键的話 ...
- 如何限制指定textFiled第三方输入法切换
在有些项目中需要用到输入纯数字的键盘,并且还不能切换到第三方输入法! textFiled.secureTextEntry = YES; [textFiled addTarget:self action ...
- 部分视图 - partial
对于partia来说,可以理解为组件化的运用,即将对应的html/js/css进行封装,然后通过模板引擎直接进行调用 1.partial的注册 //可以直接写在app.js,也可以写在之前所说的hel ...
- Angular 引入第三方框架方法(如Jquery,Bootstrap)
1.npm i jquery --save / npm i bootstrap --save 2.angular.json 引入路径 3.引入Jquery和Bootstrap的类型描述文件 ...
- 配置NFS
主机端 sudo apt-get install nfs-kernel-server 修改配置文件 sudo vim /etc/exports 添加: /home/nfs/fs_qtopia *(rw ...
- leetcode每日刷题计划-简单篇day9
Num 38 报数 Count and Say 题意读起来比较费劲..看懂了题还是不难的 注意最后的长度是sz的长度,开始写错写的len 在下次计算的时候len要更新下 说明 直接让char和int进 ...
- Golang 包管理简介
Golang 包管理 在一个项目里,如果想引用本地包,经常会把新手搞的莫名其妙.这里通俗记录一下. 首先先要知道几个默认的规则 必须定义环境变量GOPATH,GOPATH可以定义多个目录 所有项目代码 ...
- win10 .net3.5的问题及解决方案
近日有网友反映在windows10_64位系统电脑上安装Net framework3.5,操作时总失败,怎么办呢?小编下面就介绍win10 64位系统无法安装Net framework3.5的两种解决 ...
- 读取tensorflow的checkpoint里保存的参数
import tensorflow as tf from tensorflow.python import pywrap_tensorflow import os checkpoint_path = ...