Jest tak dlatego, że animacje wykonujesz pewnie w momencie ACTION_DOWN, zrób OnClickListenera na button i wtedy puść animacje
Ok, nie wiem czy dobrze zrozumiałem, myślę, że tak ;p oto mój kod:
b1.setOnTouchListener(new OnTouchListener() {
public boolean onTouch(View view, MotionEvent motionevent) {
mScanner.setVisibility(View.VISIBLE);
mAnimation = new TranslateAnimation(
TranslateAnimation.ABSOLUTE, 0f,
TranslateAnimation.ABSOLUTE, 0f,
TranslateAnimation.RELATIVE_TO_PARENT, 0f,
TranslateAnimation.RELATIVE_TO_PARENT, 0.21f);
mAnimation.setDuration(4000);
mAnimation.setRepeatCount(-1);
mAnimation.setRepeatMode(Animation.REVERSE);
mAnimation.setInterpolator(new LinearInterpolator());
mScanner.setAnimation(mAnimation);
int action = motionevent.getAction();
if (action == MotionEvent.ACTION_DOWN) {
} else if (action == MotionEvent.ACTION_CANCEL ) {
mAnimation.reset();
}
return false;
}
});
Jednak dalej jest ten sam problem, bo po naciśnięciu przycisku i przytrzymaniu go animacja pracuje, to prawda. Ale po odpuszczeniu palca nadal pracuje. A chodzi o to, żeby się zresetowała do stanu wyjściowego i zatrzymała.
Coś jeszcze jest źle ?