15

私は問題があります。を使用して、の背景色をアニメーション化したい。問題は、それがアニメートすることですが、期間も、も気にしません。LinearLayoutObjectAnimator
valueFromvalueTo

これは私のxmlファイルです:

<objectAnimator xmlns:android="http://schemas.android.com/apk/res/android"
    android:duration="2000"
    android:propertyName="backgroundColor"
    android:repeatCount="infinite"
    android:repeatMode="reverse"
    android:valueFrom="#FF0000"
    android:valueTo="#000000" />

Javaでは次のように呼びます。

ObjectAnimator objAnim = (ObjectAnimator)AnimatorInflater.loadAnimator(getActivity(), R.animator.animator_bkg);
objAnim.setTarget(view);
objAnim.start();

レイアウトのアルファをアニメーション化すると、期待どおりに機能することに注意してください。
これはAndroidのバグ(Asus Transformerでは4.0.3)ですか、それとも何かが恋しいですか?

4

2 に答える 2

40

ちょっとググってみました。答えがあります。TransitionDrawable を使用してみてください。http://developer.android.com/guide/topics/resources/drawable-resource.html#Transition

また、stackoverflow.com のどこかに同じ問題専用のトピックがあります。

追加されたコード例:

    Button btn = (Button)this.findViewById(R.id.btn1);
    //Let's change background's color from blue to red.
    ColorDrawable[] color = {new ColorDrawable(Color.BLUE), new ColorDrawable(Color.RED)};
    TransitionDrawable trans = new TransitionDrawable(color);
    //This will work also on old devices. The latest API says you have to use setBackground instead.
    btn.setBackgroundDrawable(trans);
    trans.startTransition(5000);
于 2012-09-07T18:46:45.687 に答える