Ich füge einen Leuchtanimationseffekt zu einem Logo hinzu. Bisher habe ich mit einem LayeredDrawable das Leuchtbild hinter dem Logo erhalten, kann aber nicht herausfinden, wie es animiert wird. Ich habe festgestellt, dass AlphaAnimation den gewünschten Effekt erzielt, aber leider kann ich es nur auf Ansichten anwenden, nicht auf Drawables. Wie kann ich diesen Effekt erzielen?Anwenden einer Animation auf einem Drawable in Android
7
A
Antwort
2
Android 3.0 eingeführt Property Animations.
Leider ist dies auf Android 3.0 und höher beschränkt, die in absehbarer Zeit nicht auf die Telefone kommen werden.
-2
Ich verwende eine Animation auf dem ImageView, die das Zeichenfeld anzeigt. Ich denke, das sollte auch in Ihrem Fall möglich sein.
6
Einfaches Beispiel
final ImageView imageView = (ImageView) findViewById(R.id.animatedImage);
final Button animated = (Button) findViewById(R.id.animated);
animated.setOnClickListener(new View.OnClickListener() {
@Override
public void onClick(View v) {
Drawable drawable = imageView.getDrawable();
if (drawable.getAlpha() == 0) {
ObjectAnimator animator = ObjectAnimator.ofPropertyValuesHolder(drawable, PropertyValuesHolder.ofInt("alpha", 255));
animator.setTarget(drawable);
animator.setDuration(2000);
animator.start();
} else {
ObjectAnimator animator = ObjectAnimator.ofPropertyValuesHolder(drawable, PropertyValuesHolder.ofInt("alpha", 0));
animator.setTarget(drawable);
animator.setDuration(2000);
animator.start();
}
}
});
Methode getAlpha()
in api hinzufügen 19. Aber es ist keine große Einschränkung, können Sie den Status in einer lokalen Variablen speichern. ObjectAnimator
hinzufügen in Android 3.0 (API 11), vielleicht alte Version Android können Sie nineoldandroids verwenden. Ich habe nicht mit Neoldoldroids getestet.
Leider scheint ein Layered Drawable ein einzelnes ImageView zu erstellen. Wenn ich also die Alpha-Animation anwenden würde, würde das sowohl für das Logo als auch für das Leuchten gelten. – Casebash