自定义数据加载动画
自定义View继承ProgressDialog:
import android.app.ProgressDialog;
import android.content.Context;
import android.os.Bundle;
import android.view.WindowManager;
import android.widget.ImageView;
import com.bumptech.glide.Glide;
public class LoadingView extends ProgressDialog {
private Context mContext;
// 显示的图片
private ImageView mImageView;
public LoadingView(Context context) {
super(context, R.style.MyDialog);
this.mContext = context;
}
@Override
protected void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
init(getContext());
}
private void init(Context context) {
setCancelable(true);
setCanceledOnTouchOutside(false);
setContentView(R.layout.view_loading);
initView();
}
private void initView() {
mImageView = (ImageView) findViewById(R.id.load_imgv);
//Glide加载GIF图,实现加载动画效果
Glide.with(mContext).asGif().load(R.mipmap.loading).into(mImageView) ;
}
@Override
public void show() {//开启
super.show();
}
@Override
public void dismiss() {//关闭
super.dismiss();
}
}
加载动画布局:
<?xml version="1.0" encoding="utf-8"?>
<RelativeLayout xmlns:android="http://schemas.android.com/apk/res/android"
android:layout_width="80dp"
android:layout_height="80dp"
android:layout_gravity="center"
android:gravity="center">
<LinearLayout
android:id="@+id/load_layout"
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:gravity="center"
android:background="#00000000"
android:orientation="vertical">
<ImageView
android:id="@+id/load_imgv"
android:layout_width="wrap_content"
android:layout_height="wrap_content"/>
</LinearLayout>
</RelativeLayout>
Dialog-Style:
<style name="MyDialog" parent="Theme.AppCompat.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:windowBackground">@android:color/transparent</item>
<item name="android:backgroundDimEnabled">true</item>
<item name="android:layout_width">match_parent</item>
<item name="windowActionBar">false</item>
<item name="windowNoTitle">true</item>
</style>