Dialog实现全局Loading加载框

很多人在实现Loading加载框的时候,都是在当前的页面隐藏一个Loading布局,需要加载的时候,显示出来,加载完再隐藏

使用Dialog实现Loading框可以实现低耦合。

效果图

自定义Loading类

  1. package ……;
  2. import ……;
  3. /**
  4. * Created by kongqw on 2015/12/3.
  5. */
  6. public abstract class Loading extends Dialog {
  7. public abstract void cancle();
  8. public Loading(Context context) {
  9. super(context, R.style.Loading);
  10. // 加载布局
  11. setContentView(R.layout.view_loading);
  12. // 设置Dialog参数
  13. Window window = getWindow();
  14. WindowManager.LayoutParams params = window.getAttributes();
  15. params.gravity = Gravity.CENTER;
  16. window.setAttributes(params);
  17. }
  18. // TODO 封装Dialog消失的回调
  19. @Override
  20. public void onBackPressed() {
  21. // 回调
  22. cancle();
  23. // 关闭Loading
  24. dismiss();
  25. }
  26. }

给自定义的Dialog添加自定义属性

在values文件夹下styles.xml里添加属性

  1. <resources>
  2. ……
  3. <style name="Loading" parent="@android:style/Theme.Dialog">
  4. <item name="android:windowFrame">@null</item>
  5. <item name="android:windowIsFloating">true</item>
  6. <item name="android:windowIsTranslucent">true</item>
  7. <item name="android:windowNoTitle">true</item>
  8. <!-- 设置背景色 透明-->
  9. <item name="android:background">@android:color/transparent</item>
  10. <item name="android:windowBackground">@android:color/transparent</item>
  11. <!-- 设置是否显示背景 -->
  12. <item name="android:backgroundDimEnabled">true</item>
  13. <!-- 设置背景透明度 -->
  14. <item name="android:backgroundDimAmount">0.6</item>
  15. <!-- 设置点击空白不消失 -->
  16. <item name="android:windowCloseOnTouchOutside">false</item>
  17. </style>
  18. </resources>

Loading布局

  1. <?xml version="1.0" encoding="utf-8"?>
  2. <RelativeLayout xmlns:android="http://schemas.android.com/apk/res/android"
  3. android:layout_width="wrap_content"
  4. android:layout_height="wrap_content">
  5. <TextView
  6. android:id="@+id/title"
  7. android:layout_width="wrap_content"
  8. android:layout_height="wrap_content"
  9. android:background="#88888888"
  10. android:gravity="center"
  11. android:textColor="#FFFF0000"
  12. android:padding="10dp"
  13. android:text="Loading" />
  14. </RelativeLayout>

使用

初始化

cancle()是按返回键,Loading框关闭的回调,可以做取消加载请求的操作。

  1. // 添加Loading
  2. Loading mLoading = new Loading(this) {
  3. @Override
  4. public void cancle() {
  5. }
  6. };

显示Loading框

  1. // 显示Loading
  2. mLoading.show();

关闭Loading框

  1. // 关闭Loading
  2. mLoading.dismiss();

使用Dialog实现全局Loading加载框的更多相关文章

  1. vue+elementUI+axios实现的全局loading加载动画

    在项目中,很多时候都需要loading加载动画来缓解用户的焦虑等待,比如说,我打开了一个页面,而这个页面有很多接口请求,但浏览器的请求并发数就那么几个,再加上如果网速不行的话,那么这时候,用户很可能就 ...

  2. vue-element-admin 全局loading加载等待

    最近遇到需求: 全局加载loading,所有接口都要可以手动控制是否展示加载等待的功能 当拿到这个需求的时候我是拒绝的,因为我以及局部写好了0.0,这是要大改呀....,没办法老板的要求,只能硬着头皮 ...

  3. js+css实现全局loading加载

    js var Mask = function() { //定义一个Mask对象 this.btn = ["取消", "确定"], this.init = fun ...

  4. Ajax全局加载框(Loading效果)的配置

    在Ajax进行后台数据请求的过程中,我们有时候会希望用户能知道页面后台还在做一些事情,这时候就需要给用户一个非常明确的提示,也就是我们所谓的进度条 废话完成~ 实现原理: Jquery可以对ajax进 ...

  5. 加载框(loading)

    一般在用户提交数据或者新加载页面时,请求服务器的过程,页面没有响应,但是用户并不知道,此时在发生什么.这时,就需要loading框给用户提示,增加用户体验. 1.引入loading.css. html ...

  6. vue2 自定义全局组件(Loading加载效果)

    vue2 自定义全局组件(Loading加载效果) github地址: https://github.com/ccyinghua/custom-global-component 一.构建项目 vue ...

  7. 一个mui扩展插件mui.showLoading加载框【转】

    转:http://ask.dcloud.net.cn/article/12856 写在前面:好像mui目前dialog系列唯独缺少showLoading加载框(加载中)组件,为了统一组件样式和体验,写 ...

  8. Android--自定义加载框

    1,在网上看了下好看的加载框,看了一下,挺好看的,再看了下源码,就是纯paint画出来的,再加上属性动画就搞定了 再来看一下我们的源码 LvGhost.java package com.qianmo. ...

  9. loading加载和layer.js

    layer.js中的loading加载 l本篇主要介绍layerjs中的loading加载在实际项目中的应用 1.使用的技术 前端:HTML5+CSS3+JS+layer.js 后端:.net 2.遇 ...

随机推荐

  1. [LeetCode] Solve the Equation 解方程

    Solve a given equation and return the value of x in the form of string "x=#value". The equ ...

  2. 从三个开源项目认识OpenFlow交换机 - OVS

    在SDN/NFV的网络革新技术浪潮的引领下,催生了诸多数据面开源方案的诞生.业界知名度较高的有OVS(Open vSwitch).FD.io (Fast Data I/O).ODP(Open Data ...

  3. [USACO 13DEC]Vacation Planning(gold)

    Description Air Bovinia operates flights connecting the N farms that the cows live on (1 <= N < ...

  4. [SCOI2005]骑士精神

    题目描述 输入输出格式 输入格式: 第一行有一个正整数T(T<=10),表示一共有N组数据.接下来有T个5×5的矩阵,0表示白色骑士,1表示黑色骑士,*表示空位.两组数据之间没有空行. 输出格式 ...

  5. ●BOZJ 2229 [Zjoi2011]最小割

    题链: http://www.lydsy.com/JudgeOnline/problem.php?id=2229 题解: 首先先去看看这个博客:http://blog.csdn.net/jyxjyx2 ...

  6. 习题9-8 Uva1632

    题意: 给你n个宝藏,然后给出他们的位置a[i]以及存在时间tim[i],如果能全部拿完,求出最短时间: 否则输出No solution 思路: 对于一段区间[i,j],你取完之后肯定是在最左端或者最 ...

  7. Linux设备树语法详解【转】

    转自:http://www.cnblogs.com/xiaojiang1025/p/6131381.html 概念 Linux内核从3.x开始引入设备树的概念,用于实现驱动代码与设备信息相分离.在设备 ...

  8. VM11 CentOS6.7 i386 安装 oracle 11g r2

    CentOS 6.7 i386:最小桌面版本--中文1.网络配置 ifup eht0 vim /etc/sysconfig/network-scripts/ifcfg-eth0 修改:NBOOT=ye ...

  9. python类库numpy中常见函数的用法

    1. numpy.reshape  重塑 reshape是一种函数,函数可以重新调整矩阵的行数.列数.维数. B = reshape(A,m,n) 返回一个m*n的矩阵B, B中元素是按列从A中得到的 ...

  10. 几种常用hash算法及原理

    计算理论中,没有Hash函数的说法,只有单向函数的说法.所谓的单向函数,是一个复杂的定义,大家可以去看计算理论或者密码学方面的数据.用“人 类”的语言描述单向函数就是:如果某个函数在给定输入的时候,很 ...