如何从Java代码为ImageView制作图像变换动画

时间:2017-08-30 02:06:20

标签: android android-animation

我想用TransitionDrawable类创建它,但它需要一个单独的文件transition.xml。在那里我定义了我改变的图像。

我需要在Java代码中定义它们,因为我不知道哪些图像也会改变。我有很多图像,我不小心只得到两张图像,它们之间会互相改变。我能做什么?也许我需要另一堂课。

使用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 个答案:

答案 0 :(得分:1)

您可以使用课程“TransitionDrawable以编程方式创建constructor。您不需要从XML获取它。这使您可以灵活地动态分配它之间转换的Drawable。

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

Drawables[] drawables = new Drawables[] {
    drawable1, drawable2
};
mTransition = new TransitionDrawable(drawables);