//加载图片或页面或网络请求时出现加载动画

public Class LoadingAnimation{

    private static LoadingAnimation loadingAnimation;

     private AlterDialog alterDialog;

    private LoadingAnimation(){

    }

    public static LoadingAnimation newInstance(){

        if(loadingAnimation == null){

                loadingAnimation = new LoadingAnimation();

        }

        return loadingAnimation;

    }

    //添加加载动画

   public void lock(Context context){

        //用来记录网络请求时的次数

        addCount();

        //当第一次网络请求时加载动画

        if(getCount() == 1){

            if(alterDialog == null){

                AlterDialog.Builder builder = new AlterDialog.Builder(context,R.style.dialog);//加载动画的样式

                //builder.setCancelable(false);//设置加载动画点击屏幕或back键时都不会取消

                 alterDialog = builder.create();

                 alterDialog.setCancledOnTouchOutside(false);//设置点击屏幕是不会取消加载动画,点击back键时取消

                 alterDialog.show();

                 Window window = alterDialog.getWindow();//获得AlterDialog的window

                 window.setContentView(R.layout.lock);//给window设置自定义布局

            }else{

                alterDialog.show();

            }

        }

    }

    //去掉加载动画

    public void unlock(){

        //网络请求结束后减1

        jianCount();

        if(getCount() == 0){//表示所有的网络请求都结束了

            if(alterDialog == null)

                return ;

            alterDialog.diamiss();//隐藏加载动画

        }

        //当统计次数出错时,重置计数

        if(getCount < 0 ){

             resetCount();

        }

    }

    private static int counts = 0;

    public static synchronized void addCount(){ counts++; }

    public static synchronized void jianCount(){ counts--; }

    public static synchronized int getCounts(){ return counts; }

    public static synchronized void resetCounts(){ counts = 0; }

}

styles.xml样式

    
            

layout布局 lock.xml

<?xml version="1.0" encoding="utf-8"?>    

更多相关文章

  1. Android 手机运营商及网络类型判断
  2. Android Lottie动画库
  3. Android使用线程获取网络图片的方法
  4. android api 23 网络jar包问题
  5. Android应用程序 启动画面
  6. android的一些动画集合以及layoutAnimation的一些用法
  7. android帧动画(图片切换)——语音播放小喇叭
  8. Android---63---Android中的动画效果

随机推荐

  1. RelativeLayout常用属性介绍-----开发日
  2. Android Intent 用法汇总
  3. Android学习—— Android资料之-系统自带
  4. Android ImageButton android:scaleType
  5. Android: WebView tips & tricks
  6. android广播动态注册与发送流程分析
  7. Android(安卓)核心分析 之六 -----IPC框
  8. Android EditText进入页面不聚焦设置(进入
  9. ANDROID url资源站
  10. android横屏竖屏