<transition xmlns:android="http://schemas.android.com/apk/res/android">
<item android:drawable="@drawable/image_expand" />
<item android:drawable="@drawable/image_collapse" />
</transition> Resources res = getResources();
TransitionDrawable transition = (TransitionDrawable)res.getDrawable(R.drawable.expand_collapse);
ImageView image = (ImageView) findViewById(R.id.toggle_image);
image.setImageDrawable(transition);
transition.startTransition(1000);
TransitionDrawable mTransitionDrawable = new TransitionDrawable(new Drawable[]{
view.getDrawable(),
new BitmapDrawable(bitmap)
});
mTransitionDrawable.setCrossFadeEnabled(true);
mTransitionDrawable.startTransition(500);
view.setImageDrawable(mTransitionDrawable); Drawable oldDrawable = view.getDrawable();
BitmapDrawable oldBitmapDrawable = null;
TransitionDrawable oldTransitionDrawable=null;
if(oldDrawable instanceof TransitionDrawable){
oldTransitionDrawable = (TransitionDrawable)oldDrawable;
oldBitmapDrawable =(BitmapDrawable)oldTransitionDrawable.findDrawableByLayerId(oldTransitionDrawable.getId(1));
//oldBitmapDrawable =(BitmapDrawable) (oldTransitionDrawable).getDrawable(1);
}
else if(oldDrawable instanceof BitmapDrawable){
oldBitmapDrawable = (BitmapDrawable) oldDrawable;
}
else{
Log.e(TAG, "Some Error in setImageSourceAndDoAni");
}
if(oldTransitionDrawable==null){
oldTransitionDrawable = new TransitionDrawable(new Drawable[]{
oldBitmapDrawable,
new BitmapDrawable(bitmap)
});
//----------very important!!!
oldTransitionDrawable.setId(0, 0);
oldTransitionDrawable.setId(1, 1);
//----------
oldTransitionDrawable.setCrossFadeEnabled(true);
view.setImageDrawable(oldTransitionDrawable);
}
else{
oldTransitionDrawable.setDrawableByLayerId(oldTransitionDrawable.getId(0), oldBitmapDrawable);
oldTransitionDrawable.setDrawableByLayerId(oldTransitionDrawable.getId(1), new BitmapDrawable(bitmap) );
}
oldTransitionDrawable.startTransition(800); oldTransitionDrawable.setId(0, 0);
oldTransitionDrawable.setId(1, 1);用TransitionDrawable实现ImageView渐隐渐显效果,并解决OutOfMemory问题,布布扣,bubuko.com
用TransitionDrawable实现ImageView渐隐渐显效果,并解决OutOfMemory问题
原文:http://blog.csdn.net/heqiangflytosky/article/details/20145939