美文网首页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

    相关文章

      网友评论

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

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

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