8

ロゴにグロー アニメーション効果を追加しています。これまでのところ、LayeredDrawable を使用してロゴの背後にあるグロー イメージを取得できましたが、アニメーション化する方法がわかりません。AlphaAnimation で目的の効果が得られることがわかりましたが、残念ながら、Drawables ではなく Views にのみ適用できます。どうすればこの効果を達成できますか?

4

4 に答える 4

9

簡単な例

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();
        }
    }
});

メソッドgetAlpha()は api 19 で追加されました。しかし、これは大きな制限ではありません。ステータスをローカル変数に保存できます。ObjectAnimatorAndroid 3.0 (api 11) を追加すると、古いバージョンの Android でもnineoldandroidsを使用できる可能性があります。私はnineoldandroidsでテストしませんでした。

于 2014-11-11T14:13:01.790 に答える
3

Android 3.0 ではProperty Animationsが導入されました。

残念ながら、これは Android 3.0 以降に限定されており、すぐに携帯電話に搭載されることはありません。

于 2011-05-22T00:16:14.033 に答える
-2

ドローアブルを表示する ImageView でアニメーションを使用しています。これはあなたの場合でも可能であるべきだと思います。

于 2010-05-25T08:11:57.217 に答える