美文网首页Androidandroid 第三方库前端技术
Android开发:Android加载中动画AVLoadingI

Android开发:Android加载中动画AVLoadingI

作者: Jason_hzb | 来源:发表于2018-04-18 10:07 被阅读1181次

第三方效果图:

11.gif

第三方GitHub地址

https://github.com/hanzhanbing/AVLoadingIndicatorView

实际使用:

Step 1:

bulid.gradle

dependencies {
   compile 'com.wang.avi:library:2.1.3'
}

Step 2:

dialog_loading.xml

<?xml version="1.0" encoding="UTF-8"?>
<RelativeLayout xmlns:android="http://schemas.android.com/apk/res/android"
    xmlns:app="http://schemas.android.com/apk/res-auto"
    android:layout_width="match_parent"
    android:layout_height="match_parent"
    android:layout_gravity="center">

    <com.wang.avi.AVLoadingIndicatorView
        android:id="@+id/avi"
        style="@style/AVLoadingIndicatorView.Small"
        android:layout_width="wrap_content"
        android:layout_height="wrap_content"
        android:visibility="visible"
        app:indicatorColor="#FF0000"
        app:indicatorName="LineSpinFadeLoaderIndicator" />
</RelativeLayout>

Step 3:

style.xml

<style name="TransparentDialog" parent="@android:style/Theme.Holo.Light.Dialog">
    <item name="android:windowBackground">@android:color/transparent</item>
</style>

Step 4:

LoadingDialog.java

/**
 * 加载中Dialog
 * 
 * @author hzb
 */
public class LoadingDialog extends AlertDialog {

    private static LoadingDialog loadingDialog;
    private AVLoadingIndicatorView avi;

    public static LoadingDialog getInstance(Context context) {
        loadingDialog = new LoadingDialog(context, R.style.TransparentDialog); //设置AlertDialog背景透明
        loadingDialog.setCancelable(false);
        loadingDialog.setCanceledOnTouchOutside(false);
        return loadingDialog;
    }

    public LoadingDialog(Context context, int themeResId) {
        super(context,themeResId);
    }

    @Override
    protected void onCreate(Bundle savedInstanceState) {
        super.onCreate(savedInstanceState);
        this.setContentView(R.layout.dialog_loading);
        avi = (AVLoadingIndicatorView)this.findViewById(R.id.avi);
    }

    @Override
    public void show() {
        super.show();
        avi.show();
    }

    @Override
    public void dismiss() {
        super.dismiss();
        avi.hide();
    }
}

Step 5:

加载框显示

LoadingDialog.getInstance(this).show();

加载框隐藏

LoadingDialog.getInstance(this).dismiss();

Step 6:

效果图

加载中.jpg

Demo地址:

https://github.com/hanzhanbing/LoadingDialog

相关文章

网友评论

  • aad63390720b:你好,LoadingDialog.getInstance(this).dismiss();报空指针异常
    WindyMing:我也遇到了,请问下怎么解决的呢?
    aad63390720b:@Jason_hzb 有问题,而且退出在进去也会报错,重复点击也不行,总之dialog 不应该用单例去写
    Jason_hzb:运行我的demo有问题吗?我这边刚才试了,正常运行的
  • IT人故事会:文章很用心,我会继续支持

本文标题:Android开发:Android加载中动画AVLoadingI

本文链接:https://www.haomeiwen.com/subject/sfxvkftx.html