我有这段代码来交叉淡入 ImageView 的背景:
private void setWithCrossfade(Bitmap bitmap) {
//create drawable vector
Drawable backgrounds[] = new Drawable[2];
//getting first image
backgrounds[0] = mImageView.getDrawable();
backgrounds[1] = new BitmapDrawable(mImageView.getResources(), bitmap);
TransitionDrawable transitionDrawable = new TransitionDrawable(backgrounds);
transitionDrawable.setCrossFadeEnabled(true);
mImageView.setAdjustViewBounds(false);
mImageView.setImageDrawable(transitionDrawable);
//it is needed to reset scale type
mImageView.setScaleType(ImageView.ScaleType.CENTER_CROP);
//start crossfading
transitionDrawable.startTransition(250);
}
ImageView在 XML 布局scaleType
中设置为。centerCrop
但是,当交叉淡入淡出完成时,新位图设置为fitXY
. 在其他线程中,他们说可以通过重置scaleType
,但它也不起作用。就内存而言,调整位图大小并不是一个合适的解决方案。是否有任何解决方法来实现这一点?非常感谢。
PS:请不要建议交叉淡入淡出 2 ImageViews,或使用 ViewSwitcher 谢谢。