Java Android UI-如何在使用TransitionDrawable时动态更改图像
我想使用Java Android UI-如何在使用TransitionDrawable时动态更改图像,java,android,transitiondrawable,Java,Android,Transitiondrawable,我想使用TransitionDrawable对一些图像进行转换。但是,TransitionDrawable只允许两个图像。如何动态更改图像?如果要使用TransitionDrawable转换两个以上的图像,可以执行以下操作 这是我制作的一个测试程序,作为示例: public class MainActivity extends AppCompatActivity { private ImageView image; private TransitionDrawable trans
TransitionDrawable
对一些图像进行转换。但是,TransitionDrawable
只允许两个图像。如何动态更改图像?如果要使用TransitionDrawable
转换两个以上的图像,可以执行以下操作
这是我制作的一个测试程序,作为示例:
public class MainActivity extends AppCompatActivity {
private ImageView image;
private TransitionDrawable trans;
private Resources res;
private int images[] = {R.drawable.yourImage1, R.drawable.yourImage2, R.drawable.yourImage3};
private int imageIndex1;
private int imageIndex2;
@Override
protected void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
ConstraintLayout layout = new ConstraintLayout(this);
setContentView(layout);
imageIndex1 = 0;
imageIndex2 = 1;
image = new ImageView(this);
image.setImageResource(images[0]);
layout.addView(image);
res = this.getResources();
image.setOnClickListener(new View.OnClickListener() {
@Override
public void onClick(View v) {
trans = new TransitionDrawable(new Drawable[]{res.getDrawable(images[imageIndex1]), res.getDrawable(images[imageIndex2])});
if (imageIndex1 == images.length-1) {
imageIndex1 = 0;
} else {
imageIndex1++;
}
if (imageIndex2 == images.length-1) {
imageIndex2 = 0;
} else {
imageIndex2++;
}
image.setImageDrawable(trans);
// Set the parameter value to whatever time you want
trans.reverseTransition(2000);
}
});
}
}
我希望这与您正在寻找的内容类似。
TransitionDrawable
仅用于转换2幅图像。您需要使用LayerDrawable
来管理多个Drawable。