Android 页面或文件或网络请求时的加载动画

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

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




    

你可能感兴趣的:(Android,工具集成类)