/ / animácia sa nevzťahuje na tlačidlo s pozadím - android animácie

animácia sa nevzťahuje na tlačidlo s pozadím - android, animácia

Mám tlačidlo definované v mojom rozloženom súbore. Po kliknutí na tlačidlo priradím animáciu nasledovne:

   Animation animation = new RotateAnimation(0.0f, 360.0f,
Animation.RELATIVE_TO_SELF, 0.5f, Animation.RELATIVE_TO_SELF,
0.5f);
animation.setRepeatCount(-1);
animation.setDuration(2000);
mybutton.setAnimation(animation);

všetko funguje dobre v tomto bode. Problém nastane, keď nastavím akékoľvek pozadie môjho tlačidla zvlášť android:background="@null" v definícii tlačidla.

Máte nejakú predstavu o tom, ako to napraviť? Vďaka.

odpovede:

0 pre odpoveď č. 1

Práve som to skúsil v mojom projekte a funguje to na tlačidle s pozadím.

private ObjectAnimator rotationAnimator;

a funkcie na ovládanie animácie

private void startAnimation(int animationDuration) {

if (rotationAnimator == null || !rotationAnimator.isRunning()) {
// You can tweak this to your needs
Keyframe kf0 = Keyframe.ofFloat(0f, 0f);
Keyframe kf2 = Keyframe.ofFloat(0.5f, 180f);
Keyframe kf1 = Keyframe.ofFloat(1f, 360f);

PropertyValuesHolder pvhRotation = PropertyValuesHolder.ofKeyframe("rotation", kf0, kf1, kf2);
rotationAnimator = ObjectAnimator.ofPropertyValuesHolder(your_button_here, pvhRotation);
rotationAnimator.setRepeatCount(ObjectAnimator.INFINITE);
rotationAnimator.setInterpolator(new LinearInterpolator());
rotationAnimator.setDuration(animationDuration);
rotationAnimator.start();
}
else {
Log.d("Animation", "I am already running!");
}
}

private void stopAnimation() {
if (rotationAnimator != null) {
rotationAnimator.cancel();
rotationAnimator = null;
}
}

private boolean getAnimationRunning() {
return rotationAnimator != null && rotationAnimator.isRunning();
}