转换中可以有多于2个项目吗?我需要改变背景,所以第二帧渐渐消失,而第三帧则消失,等等到第四帧......
现在我有这个:
<?xml version="1.0" encoding="UTF-8"?>
<transition xmlns:android="http://schemas.android.com/apk/res/android">
<item android:drawable="@drawable/voting_button_not1"/>
<item android:drawable="@drawable/voting_button_not2"/>
<item android:drawable="@drawable/voting_button_not3"/>
<item android:drawable="@drawable/voting_button_not4"/>
<item android:drawable="@drawable/voting_button_not5"/>
<item android:drawable="@drawable/voting_button_not1"/>
</transition>
我拿到了按钮:
<ImageButton android:id="@+id/skipButton"
android:layout_width="match_parent"
android:layout_height="match_parent"
android:background="@drawable/coldf1f2"
android:scaleType="fitCenter"
android:adjustViewBounds="true"/>
P.S。不要紧,它的ImageButton,没有任何区别。
在我的代码中,我得到了这样的东西:
TransitionDrawable vote_not = (TransitionDrawable)skip.getBackground();
vote_not.startTransition(1000);
它从第一项到第二项进行过渡。但我需要播放完整列表。
答案 0 :(得分:2)
似乎TransitionDrawable
只能用两层操作。取自班级Android documentation:
LayerDrawables的扩展,旨在交叉淡入淡出 第一层和第二层。
我认为你可以指定两个以上的图层,因为这是分层drawable的扩展,但是在TransitionDrawable
的情况下实际上只使用了前两个。
答案 1 :(得分:0)
您可以使用处理程序
尝试此选项mAnimateImage是一个imageView 和DrawableImage是一个带有drawables的数组
int DrawableImage[] = {R.drawable.back_red , R.drawable.back_green, R.drawable.back_purple};
final Handler handler = new Handler();
final int[] i = {0};
final int[] j = {1};
handler.postDelayed(new Runnable() {
@Override
public void run() {
runOnUiThread(new Runnable() {
@Override
public void run() {
Resources res = getApplicationContext().getResources();
TransitionDrawable out = new TransitionDrawable(new Drawable[]{res.getDrawable(DrawableImage[i[0]]), res.getDrawable(DrawableImage[j[0]])});
out.setCrossFadeEnabled(true);
mAnimateImage.setImageDrawable(out);
out.startTransition(4000);
i[0]++;
j[0]++;
if (j[0] == DrawableImage.length) {
j[0] = 0;
}
if (i[0] == DrawableImage.length) {
i[0] = 0;
}
handler.postDelayed(this, 8000);
}
});
}
}, 0);
答案 2 :(得分:0)
您可以结合使用处理程序和为数组元素重新应用TransitionDrawable来实现。
答案 3 :(得分:-1)
听起来你可能想要AnimationDrawable:
http://developer.android.com/reference/android/graphics/drawable/AnimationDrawable.html