ScaleAnimation

分享大家一個關於ScaleAnimation的點擊事件,個人非常喜歡

boolean fcous;

boolean isRunAnim;

boolean isClick;

public void setonClick(View view){

view.setClickable(true);

view.setOnTouchListener(new OnTouchListener() {

long startTime = 0;

@Override

public boolean onTouch(final View view, MotionEvent event) {

//手指移開的時候執行動畫

switch (event.getAction()) {

case MotionEvent.ACTION_UP:

fcous=false;

if(System.currentTimeMillis()-startTime<=300){//點擊事件

isClick=true;

}

if(!isRunAnim){

ScaleAnimation ScaleAnimation = new ScaleAnimation(0.95f,1.0f, 0.95f,1.0f, Animation.RELATIVE_TO_SELF, 0.5f,Animation.RELATIVE_TO_SELF, 0.5f);

ScaleAnimation.setDuration(250);

ScaleAnimation.setFillAfter(true);

view.setAnimation(ScaleAnimation);

view.startAnimation(ScaleAnimation);

ScaleAnimation.setAnimationListener(new AnimationListener() {

@Override

public void onAnimationStart(Animation arg0) {

}

@Override

public void onAnimationRepeat(Animation arg0) {

}

@Override

public void onAnimationEnd(Animation arg0) {

if(isClick){

onClick(view);

}

}

});

}

break;

case MotionEvent.ACTION_CANCEL:

view.clearAnimation();

break;

case MotionEvent.ACTION_DOWN:

fcous=true;

isClick=false;

startTime=System.currentTimeMillis();

ScaleAnimation bottomLiftScaleAnimation = new ScaleAnimation(1.0f,0.95f, 1.0f,0.95f, Animation.RELATIVE_TO_SELF, 0.5f,Animation.RELATIVE_TO_SELF, 0.5f);

bottomLiftScaleAnimation.setDuration(250);

view.setAnimation(bottomLiftScaleAnimation);

view.startAnimation(bottomLiftScaleAnimation);

bottomLiftScaleAnimation.setFillAfter(true);

bottomLiftScaleAnimation.setAnimationListener(new AnimationListener() {

@Override

public void onAnimationStart(Animation arg0) {

isRunAnim=true;

}

@Override

public void onAnimationRepeat(Animation arg0) {

}

@Override

public void onAnimationEnd(Animation arg0) {

isRunAnim=false;

if(!fcous){

ScaleAnimation ScaleAnimation = new ScaleAnimation(0.95f,1.0f, 0.95f,1.0f, Animation.RELATIVE_TO_SELF, 0.5f,Animation.RELATIVE_TO_SELF, 0.5f);

ScaleAnimation.setDuration(250);

ScaleAnimation.setFillAfter(true);

view.setAnimation(ScaleAnimation);

view.startAnimation(ScaleAnimation);

ScaleAnimation.setAnimationListener(new AnimationListener() {

@Override

public void onAnimationStart(Animation arg0) {

}

@Override

public void onAnimationRepeat(Animation arg0) {

}

@Override

public void onAnimationEnd(Animation arg0) {

if(isClick){

onClick(view);

}

}

});

}

}

});

break;

}

return true;

}

});

}

發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章