2017-08-30 5 views
1

私はTransitionDrawableクラスで作成したかったのですが、別のファイルtransition.xmlが必要です。ここで私はどのイメージに変わるかを定義します。JavaコードからImageViewの画像をアニメーション化する方法

どのイメージを変更するのかわからないので、これらをJavaコードで定義する必要があります。私は多くの画像を持っていて、間違って2つの画像しか得ておらず、お互いに変わってしまいます。私に何ができる?多分別のクラスが必要かもしれません。 transition.xmlと

コード:

public class TransitionActivity extends Activity 
     implements OnClickListener { 

    private ImageView image; 
    private TransitionDrawable mTransition; 

    @Override 
    public void onCreate(Bundle savedInstanceState) { 
     super.onCreate(savedInstanceState); 
     setContentView(R.layout.main); 

     image = (ImageView)findViewById(R.id.image); 
     image.setOnClickListener(this); 

     Resources res = this.getResources();  
     mTransition = (TransitionDrawable)res.getDrawable(R.drawable.transition); 
    } 

    @Override 
    public void onClick(View v) { 
     image.setImageDrawable(mTransition);  
     mTransition.startTransition(1000); 
    } 
} 

答えて

1

あなたはプログラムでクラスのconstructorを使用してTransitionDrawableを作成することができます。 XMLから取得する必要はありません。これにより、トランジション間のトランジションを動的に割り当てる柔軟性が得られます。

// drawable1 and drawable2 can be dynamically assigned in your Java code 

Drawables[] drawables = new Drawables[] { 
    drawable1, drawable2 
}; 
mTransition = new TransitionDrawable(drawables); 
関連する問題