非常简单的通用加载提示框,复制粘贴即可使用。
先上图(圆圈会转动)
一、创建
1、MyProgressDialog.class
import android.app.Dialog;
import android.content.Context;
import android.os.Bundle;
import android.text.TextUtils;
import android.view.View;
import android.view.animation.Animation;
import android.view.animation.AnimationUtils;
import android.widget.ImageView;
import android.widget.TextView;
/**
* 通用加载提示框MyProgressDialog类
*/
public class MyProgressDialog extends Dialog {
private ImageView mLoadingImg;
private TextView mMesssageTV;
public MyProgressDialog(Context context) {
super(context);
}
@Override
protected void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
setContentView(R.layout.process_dialog);
mLoadingImg = (ImageView) findViewById(R.id.loadingimg);
mMesssageTV = (TextView) findViewById(R.id.messagetv);
}
/**
* 当没有消息时只展示转圈
*
* @param message
*/
public void showMessage(String message) {
try {
super.show();
if (!TextUtils.isEmpty(message)) {
mMesssageTV.setText(message);
mMesssageTV.setVisibility(View.VISIBLE);
} else {
mMesssageTV.setText("");
mMesssageTV.setVisibility(View.GONE);
}
} catch (Exception e) {
e.printStackTrace();
}
}
@Override
public void onWindowFocusChanged(boolean hasFocus) {
super.onWindowFocusChanged(hasFocus);
Animation animation = AnimationUtils.loadAnimation(getContext(), R.anim.rotate);
mLoadingImg.startAnimation(animation);
}
}
2、在res文件夹下,创建anim文件夹,创建rotate.xml,用于转圈的动画效果
<?xml version="1.0" encoding="utf-8"?>
<rotate xmlns:android="http://schemas.android.com/apk/res/android"
android:duration="1500"
android:fromDegrees="0"
android:interpolator="@android:anim/linear_interpolator"
android:pivotX="50%"
android:pivotY="50%"
android:repeatCount="infinite"
android:toDegrees="360" />
3、在res/layout下创建process_dialog.xml
<?xml version="1.0" encoding="utf-8"?>
<LinearLayout xmlns:android="http://schemas.android.com/apk/res/android"
android:layout_width="match_parent"
android:layout_height="match_parent"
android:background="#00000000"
android:gravity="center"
android:orientation="vertical">
<LinearLayout
android:id="@+id/progressbg"
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:background="@mipmap/alert_process_bg"
android:gravity="center"
android:orientation="vertical">
<ImageView
android:id="@+id/loadingimg"
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:src="@mipmap/alert_loading" />
<TextView
android:id="@+id/messagetv"
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:layout_marginTop="10dp"
android:text="正在加载中..."
android:textColor="#ffffff"
android:textSize="15sp"
android:visibility="gone" />
</LinearLayout>
</LinearLayout>
4、图片资源
(***这里有图片!!圆圈为纯白色,直接右键图片另存为即可!!!)*
二、用法:
/***
* 启动
*/
public static void showProgress(Context context, String message) {
if (dialog == null) {
dialog = new MyProgressDialog(context);
}
dialog.showMessage(message);
}
/***
* 关闭
*/
public static void dismissProgress(Context context) {
if (dialog == null) {
dialog = new MyProgressDialog(context);
}
dialog.dismiss();
}
1、网络加载或其他需等待操作前:
//第二个参数不填即不显示文字
showProgress(xxxActivity.this, "正在加载中...");
2、网络加载或其他需等待操作后:
dismissProgress(xxxActivity.this);