自定义动画时遇见的问题

来源:互联网 发布:中国软件联盟 编辑:程序博客网 时间:2024/05/18 21:10
@Override    public void onClick(View v) {        switch (v.getId()) {        case R.id.ib_home:            if(firstShowOrHide){                if(showOrHide){                    hideAnimation(rlThird,0);                    showOrHide=false;                }                hideAnimation(rlSecond,100);                //firstShowOrHide=false;            }else{                showAnimation(rlSecond);                //firstShowOrHide=true;            }            firstShowOrHide=!firstShowOrHide;//上面的斜杠和这个互换            break;        case R.id.second_menu:            if(showOrHide){                hideAnimation(rlThird,0);                //showOrHide=false;            }else{                showAnimation(rlThird);                //showOrHide=true            }            showOrHide=!showOrHide;//上面加斜杠的和这个互换        default:            break;        }    }    private void hideAnimation(RelativeLayout layout,long delay) {            RotateAnimation rotate=new RotateAnimation(0f, -180f,                     Animation.RELATIVE_TO_SELF, 0.5f,                     Animation.RELATIVE_TO_SELF, 1.0f);            rotate.setDuration(300);            rotate.setStartOffset(delay);            rotate.setFillAfter(true);        layout.startAnimation(rotate);    }    private void showAnimation(RelativeLayout layout) {        RotateAnimation rotate=new RotateAnimation(-180f, 0f,                 Animation.RELATIVE_TO_SELF, 0.5f,                 Animation.RELATIVE_TO_SELF, 1.0f);        rotate.setDuration(300);        rotate.setFillAfter(true);        layout.startAnimation(rotate);    }

这样就没有问题,但是如果在把上面的斜杠和这个互换就会曲线闪动的问题

2.动画在运行到不可见时其实只是看不见,但是还是可以点击的,所以要在不可见时,把能够点击的按钮设置为false.

int count=layout.getChildCount();        for(int i=0;i<count;i++){            layout.getChildAt(i).setEnabled(false);        }

3.在执行动画过程中,如果我们一直不断的点击,则动画就会在没有执行完就会执行下一个。为避免这种事情发生,在点击之后判断是第几次,如果大于一次就不执行下面的程序;

if(layoutCount>1){            return;        }
0 0
原创粉丝点击