android基于dialog实现等待加载框示例

最近想找一些新颖的等待框,但一直找不到理想的效果,没有办法,只好自己动手丰衣足食了。

先给大家看个效果图!

首先就是新建一个dialog的XML文件了

<?xml version="1.0" encoding="utf-8"?>
<LinearLayout xmlns:android="http://schemas.android.com/apk/res/android"
 android:layout_width="wrap_content"
 android:layout_height="wrap_content"
 android:background="@drawable/ic_loading_bg"
 android:gravity="center"
 android:orientation="vertical"
 android:padding="16.0dip" > 

 <ProgressBar
  android:layout_width="24.0dip"
  android:layout_height="24.0dip"
  android:indeterminateDrawable="@drawable/progress_drawable_white" /> 

 <TextView
  android:id="@+id/id_tv_loadingmsg"
  android:layout_width="wrap_content"
  android:layout_height="wrap_content"
  android:layout_gravity="center_vertical"
  android:layout_marginTop="8.0dip"
  android:textColor="@color/white"
  android:textSize="16.0dip" /> 

</LinearLayout>

ic_loading_bg就是一个背景的图片。

关于上面的drawable中的progress_drawable_white.xml文件如下

<?xml version="1.0" encoding="utf-8"?>
<animation-list android:oneshot="false"
 xmlns:android="http://schemas.android.com/apk/res/android">
 <item android:duration="83" android:drawable="@drawable/ic_loading_white_01" />
 <item android:duration="83" android:drawable="@drawable/ic_loading_white_02" />
 <item android:duration="83" android:drawable="@drawable/ic_loading_white_03" />
 <item android:duration="83" android:drawable="@drawable/ic_loading_white_04" />
 <item android:duration="83" android:drawable="@drawable/ic_loading_white_05" />
 <item android:duration="83" android:drawable="@drawable/ic_loading_white_06" />
 <item android:duration="83" android:drawable="@drawable/ic_loading_white_07" />
 <item android:duration="83" android:drawable="@drawable/ic_loading_white_08" />
 <item android:duration="83" android:drawable="@drawable/ic_loading_white_09" />
 <item android:duration="83" android:drawable="@drawable/ic_loading_white_10" />
 <item android:duration="83" android:drawable="@drawable/ic_loading_white_11" />
 <item android:duration="83" android:drawable="@drawable/ic_loading_white_12" />
</animation-list>

这12个都是图片来的。

核心显示等待框代码如下

progressDialog = new Dialog(AboutActivity.this,R.style.progress_dialog);
progressDialog.setContentView(R.layout.progress);
progressDialog.getWindow().setBackgroundDrawableResource(android.R.color.transparent);
TextView msg = (TextView) progressDialog.findViewById(R.id.id_tv_loadingmsg);
msg.setText("卖力加载中");
progressDialog.show();

其中的文字可以自己改了,方便直接。

给新手的提示,记得在开头写上 private Dialog progressDialog;(老鸟可以忽略这个啦)

里面有个style,加上下面的代码到style.xml文件里面就OK了!

<style name="progress_dialog" parent="@android:style/Theme.Dialog">
  <item name="android:windowFrame">@null</item>
  <item name="android:windowIsFloating">true</item>
  <item name="android:windowIsTranslucent">true</item>
  <item name="android:windowNoTitle">true</item>
  <item name="android:background">@null</item>
  <item name="android:windowBackground">@null</item>
  <item name="android:backgroundDimEnabled">false</item>
 </style> 

关于如何让这个消失,在需要消失的地方加上

progressDialog.dismiss(); 

就OK了

demo下载地址:ProgressDialog_jb51.rar

以上就是本文的全部内容,希望对大家的学习有所帮助,也希望大家多多支持我们。

(0)

相关推荐

  • android多种滑动冲突的解决方案

    一.前言 Android 中解决滑动的方案有2种:外部拦截法 和内部拦截法. 滑动冲突也存在2种场景: 横竖滑动冲突.同向滑动冲突. 所以我就写了4个例子来学习如何解决滑动冲突的,这四个例子分别为: 外部拦截法解决横竖冲突.外部拦截法解决同向冲突.内部拦截法解决横竖冲突.内部拦截法解决同向冲突. 先上效果图: 二.实战 1.外部拦截法,解决横竖冲突 思路是,重写父控件的onInterceptTouchEvent方法,然后根据具体的需求,来决定父控件是否拦截事件.如果拦截返回返回true,不拦截返

  • Android Listview中显示不同的视图布局详解及实例代码

    Android Listview中显示不同的视图布局 1. 使用场景 在重写ListView的BaseAdapter时,我们常常在getView()方法中复用convertView,以提高性能.convertView在Item为单一的同种类型布局时,能够回收并重用,但是多个Item布局类型不同时,convertView的回收和重用会出现问题.比如有些行为纯文本,有些行则是图文混排,这里纯文本行为一类布局,图文混排的行为第二类布局.单一类型的ListView很简单,下面着重介绍一下ListView

  • Android引导页面的简单实现

    第一次进入应用的时候,都会有一个引导页面,引导页面的实现起来也很简单,实现的方式也有很多,下面是自己写的一个引导页面的效果,大致的实现思路为: 最外层是一个FragmentActivity,里面包含4个fragment,在fragment中给ViewPager开一个循环,这样实现了图片播,其实效果就是在FragmentActivity中几个fragment滑动切换, fragment中ViewPager无限轮播和滑动切换: 下面为代码实现: public class MainActivity e

  • android使用AsyncTask实现多线程下载实例

    AsyncTask不仅方便我们在子线程中对UI进行更新操作,还可以借助其本身的线程池来实现多线程任务.下面是一个使用AsyncTask来实现的多线程下载例子. 01 效果图 02 核心类 - DownloadTask.class public class DownloadTask extends AsyncTask<String, Integer, Integer> { public static final int TYPE_SUCCESS = 0; public static final

  • Android获取联系人姓名和电话代码

    在开发中往往有要获取联系人列表的功能,但是这次却不是获取联系人列表,而是在联系人列表点击单个联系人,获取单个联系人的姓名和电话,并设置在指定的输入框内,方便用户的使用:以下是实现的代码: <?xml version="1.0" encoding="utf-8"?> <LinearLayout xmlns:android="http://schemas.android.com/apk/res/android" android:la

  • 很实用的Android日期计算类

    分享一个使用较方便的日期计算类: package com.utils.datecount; import java.text.SimpleDateFormat; import java.util.Date; import java.util.GregorianCalendar; public class DateCount { /** * datelevel 0为7天内,1为7到15天,2为15天以上 */ public static int datelevel = 0; public stat

  • Android 中StringBuffer 和StringBuilder常用方法

    如果我们的程序是在单线程下运行,或者是不必考虑到线程同步问题,我们应该优先使用StringBuilder类:如果要保证线程安全,自然是StringBuffer. 除了对多线程的支持不一样外,这两个类的使用方式和结果几乎没有任何差别, 区别在于StringBufferd支持并发操作,线性安全的,适 合多线程中使用.StringBuilder不支持并发操作,线性不安全的,不适合多线程中使用.新引入的StringBuilder类不是线程安全的,但其在单线程中的性能比StringBuffer高. Str

  • Android实现ImageView阴影和图层效果

    本文实例为大家分享了ImageView阴影和图层效果的实现代码,供大家参考,具体内容如下 import android.app.Activity; import android.content.Context; import android.graphics.Bitmap; import android.graphics.BitmapFactory; import android.graphics.Canvas; import android.graphics.Color; import and

  • 详解Android中的MVP架构分解和实现

    1.概述 传统的Android开发架构一般是MVC模式, Model:业务逻辑和实体模型 View:对应于布局文件 Controllor:对应于Activity 单独从逻辑看起来非常好,与我们做Web开发时,开发模式类似,但在实际开发中,View对应于布局文件,实际上关于该布局文件中的数据绑定的操作,事件处理的代码都在Activity中,Activity既像View又像Controller(MVVP架构中包括数据绑定),导致Activity中职责太重,耦合度大.修改和维护起来非常麻烦. 2.MV

  • Android实现图片上传功能

    最近在开发中,涉及到用户的意见反馈功能这一方面的开发,需要用户输入的文字或者提交的图片,效果大概类似于微信朋友圈那样的图片选择器,一开始自己找了个用universal-image-loader框架写的,很容实现,但是容易出现内存溢出,并且不好解决,是在没办法,就自己看了一些资料,准备自己写:在这里说下本人实现的思路,进入页面也就是显示选择图片的页面用GridView来实现,点击添加图标的时候,用Dialog实现,给Dialog添加相应的动画就可以了,进入图片展示页面还是用GridView来实现,

  • Android 两种方法实现长按返回健退出

     Android 长按返回健退出 背景 平常比较常见的都是一定时间间隔内按两次返回键来退出应用,并且第一次点击会有相应的提示,网上资料比较多,这里写一下,长按返回键退出. 实现 实现的方案常用的有两个: 重写dispatchKeyEvent(KeyEvent event)方法 重写onKeyDown(int keyCode, KeyEvent event)方法 方案一 @Override public boolean dispatchKeyEvent(KeyEvent event) { if (

随机推荐