1.dialog布局 dialog_loading.xml

 <?xml version="1.0" encoding="utf-8"?>
<LinearLayout xmlns:android="http://schemas.android.com/apk/res/android"
android:id="@+id/dialog_view"
android:layout_width="fill_parent"
android:layout_height="fill_parent"
android:background="@drawable/bg"
android:gravity="center"
android:minHeight="60dp"
android:minWidth="180dp"
android:orientation="vertical"
android:padding="10dp" > <ImageView
android:id="@+id/img"
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:src="@drawable/base_loading_large_icon" />
<!--
<TextView
android:gravity="center"
android:id="@+id/tipTextView"
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:layout_marginLeft="10dp" />
-->
</LinearLayout>

2.图像的旋转动画 loading_animation.xml

 <?xml version="1.0" encoding="utf-8"?>
<set android:shareInterpolator="false" xmlns:android="http://schemas.android.com/apk/res/android">
<rotate
android:interpolator="@android:anim/linear_interpolator"
android:pivotX="50%"
android:pivotY="50%"
android:fromDegrees="0"
android:toDegrees="+360"
android:duration="1500"
android:startOffset="-1"
android:repeatMode="restart"
android:repeatCount="-1"/>
</set>

3.dialog的style

  <!-- 自定义loading dialog -->
<style name="loading_dialog" parent="android:style/Theme.Dialog">
<item name="android:windowFrame">@null</item>
<item name="android:windowNoTitle">true</item>
<item name="android:windowIsFloating">true</item>
<item name="android:windowContentOverlay">@null</item>
</style>

4.dialog类

 package com.jingle.progressdialog;

 import android.annotation.SuppressLint;
import android.app.Dialog;
import android.content.Context;
import android.view.LayoutInflater;
import android.view.View;
import android.view.animation.Animation;
import android.view.animation.AnimationUtils;
import android.widget.ImageView;
import android.widget.LinearLayout; @SuppressLint("InflateParams")
public class LoadingDialog { private LoadingDialog() { } private static Dialog mLoadingDialog = null; // 单例模式
public static Dialog getLoadingDialog(Context context, String msg) { LayoutInflater inflater = LayoutInflater.from(context);
View v = inflater.inflate(R.layout.dialog_loading, null);// 得到加载对话框的view
LinearLayout layout = (LinearLayout) v.findViewById(R.id.dialog_view);// 加载对话框布局 ImageView spaceshipImage = (ImageView) v.findViewById(R.id.img);// 加载的图像
// TextView tipTextView = (TextView) v.findViewById(R.id.tipTextView);//
// 提示文字
// tipTextView.setText(msg);// 设置加载信息
// 加载动画
Animation hyperspaceJumpAnimation = AnimationUtils.loadAnimation(
context, R.anim.loading_animation);
// 使用ImageView显示动画
spaceshipImage.startAnimation(hyperspaceJumpAnimation); if (mLoadingDialog == null) {
mLoadingDialog = new Dialog(context, R.style.loading_dialog0);
} // Dialog loadingDialog = new Dialog(context, R.style.loading_dialog);//
// 创建自定义样式dialog // loadingDialog.setCancelable(false);// 不可以用“返回键”取消
mLoadingDialog.setContentView(layout, new LinearLayout.LayoutParams(
LinearLayout.LayoutParams.MATCH_PARENT,
LinearLayout.LayoutParams.MATCH_PARENT));// 设置布局
return mLoadingDialog; }
}
 

5.调用dialogMainActivity.java

 package com.jingle.progressdialog;

 import java.util.Timer;
import java.util.TimerTask; import android.app.Activity;
import android.app.Dialog;
import android.os.Bundle; public class MainActivity extends Activity {
private Dialog dialog = null; @Override
protected void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
setContentView(R.layout.activity_main); initDialog();
} private void initDialog() {
dialog = LoadingDialog.getLoadingDialog(this, "");
dialog.show();
Timer timer = new Timer();
timer.schedule(new Task(), 3000);
} class Task extends TimerTask {
public void run() {
dialog.dismiss();//解散dialog
}
} }

最新文章

  1. 模拟iOS系统原生导航条隐藏或显示动画
  2. Git版本控制使用介绍
  3. Java中书写要注意的地方
  4. OPENSSL库的使用-DES篇
  5. java1.8--Optional类
  6. Django知识总结
  7. Java/JSP/JS Debug笔记
  8. MySQL中有关NULL的计算
  9. 【剑指offer】广度优先遍历二叉树
  10. 5.1_非监督学习之sckit-learn
  11. 001.Postfix简介
  12. PHP流程控制 - if 语句
  13. python中发布订阅和主从配置
  14. Java基础—集合
  15. MooseFS安装部署
  16. 7.Python使用pandans遇到的坑
  17. 关于操作 ASP.NET Web API的实例
  18. Oracle中scott用户下基本表练习SQL语句
  19. iOS:常用属性、方法
  20. 第四篇 Python循环

热门文章

  1. UVA 1626 Brackets sequence(括号匹配 + 区间DP)
  2. ASP.NET MVC ActionFilterAttribute的执行顺序
  3. jdbc链接mysql转
  4. 关于Java单例
  5. tuning-primer.sh mysql 报表
  6. 未能正确加载“Microsoft.VisualStudio.Editor.Implementation.EditorPackage,
  7. phpcms下载下来的程序刚安装就报错了
  8. 你知道require是什么吗?
  9. sql数据库常用语句总结
  10. Java基础—ClassLoader的理解