2017-02-21 14 views
0

私は現在リストビューを持っており、ネットワークからのステータスに応じてアニメーションを変更したいと考えています。これまでのところ、これは動作していますが、あまりにも流動的に見えません。そうする方法がありますので、透明から色の標準に移行しますが、間に長いフェードがありません。Andriod ObjectAnimator背景色とテキスト

ここまでは私のコードです。

List<ObjectAnimator> arrayListObjectAnimators = new List<ObjectAnimator>(); 

ObjectAnimator bgColor = ObjectAnimator.OfInt(
    DoorItemLayoutView, 
    "backgroundColor", 
    Color.Transparent, 
    color, 
    color, 
    Color.Transparent); 
bgColor.SetEvaluator(new ArgbEvaluator()); 

ObjectAnimator doorTxtColor = ObjectAnimator.OfInt(
    doorName, 
    "textColor", 
    Color.White, 
    textChangeColour, 
    textChangeColour, 
    Color.White); 
doorTxtColor.SetEvaluator(new ArgbEvaluator()); 

ObjectAnimator siteTxtColor = ObjectAnimator.OfInt(
    doorSiteName, 
    "textColor", 
    Color.White, 
    textChangeColour, 
    textChangeColour, 
    Color.White); 
siteTxtColor.SetEvaluator(new ArgbEvaluator()); 

ObjectAnimator doorIconBackground = ObjectAnimator.OfInt(
    doorImage.Background, 
    "background", 
    Color.Transparent, 
    Resource.Drawable.door_active_background, 
    Resource.Drawable.door_active_background, 
    Color.Transparent); 
doorIconBackground.SetEvaluator(new ArgbEvaluator()); 

arrayListObjectAnimators.Add(bgColor); 
arrayListObjectAnimators.Add(doorTxtColor); 
arrayListObjectAnimators.Add(siteTxtColor); 
arrayListObjectAnimators.Add(doorIconBackground); 

var objectAnimators = arrayListObjectAnimators.ToArray(); 
AnimatorSet animSetXY = new AnimatorSet(); 
animSetXY.PlayTogether(objectAnimators); 
animSetXY.SetDuration(2000); 
animSetXY.Start(); 
+0

"長い間のフェードイン"とはどういう意味ですか?あなたは今持っているアニメーションを共有できますか? –

+0

私は非開示のために画面を共有することはできませんが、フェード、すなわち透明と色の間の遷移、次に色から遷移への遷移です。それは色から透明に行くのではなく、透明に黒になる。 – Philip

答えて

1

あなたはこの効果を見ている理由:

ではなく透明に色から行こうと、透明に黒それらに行きます。

あなたの代わりにColor.Transparentのあなたがその色を目標色をコピーして、0にそのアルファを設定して使用する必要がある黒を取り除きたい場合はColor.Transparentが実際にアルファ0 と黒のであるからです

+0

ありがとう、トリックでした! – Philip