Simas..
36
这是一个例子,如果你有2个drawable并且想要在某些中设置过渡动画ImageView:
package com.example.app;
import android.app.Activity;
import android.content.res.Resources;
import android.graphics.drawable.Drawable;
import android.graphics.drawable.TransitionDrawable;
import android.os.Bundle;
import android.widget.ImageView;
class MainActivity extends Activity {
@Override
protected void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
setContentView(R.layout.activity_main);
Drawable backgrounds[] = new Drawable[2];
Resources res = getResources();
backgrounds[0] = res.getDrawable(android.R.drawable.btn_star_big_on);
backgrounds[1] = res.getDrawable(android.R.drawable.btn_star_big_off);
TransitionDrawable crossfader = new TransitionDrawable(backgrounds);
ImageView image = (ImageView)findViewById(R.id.image);
image.setImageDrawable(crossfader);
crossfader.startTransition(3000);
}
}
然后,如果要转换回原始图像,可以调用
// Make sure the transition occurred
crossfader.startTransition(0);
// Reverse transition
crossfader.reverseTransition(3000);
如果我误解了你的问题,请纠正我.
应该注意的是,具有半透明背景的交叉渐变不起作用,这将使两个可绘制的末端重叠. (5认同)
你忘了添加`crossfader.setCrossFadeEnabled(true);` (3认同)