我已经得到了这段代码来实现ImageView的背景交叉淡化效果:
在XML布局中,ImageView的scaleType设置为centerCrop。然而,当交叉淡化完成后,新位图被设置为fitXY。在其他线程中,他们说可以通过重新设置scaleType来解决,但这也不起作用。调整位图大小在内存方面不是一个适当的解决方案。有没有任何解决方法来实现这个?非常感谢。
附注:请不要建议交叉淡化2个ImageView,或使用ViewSwitcher,谢谢。
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);
}
在XML布局中,ImageView的scaleType设置为centerCrop。然而,当交叉淡化完成后,新位图被设置为fitXY。在其他线程中,他们说可以通过重新设置scaleType来解决,但这也不起作用。调整位图大小在内存方面不是一个适当的解决方案。有没有任何解决方法来实现这个?非常感谢。
附注:请不要建议交叉淡化2个ImageView,或使用ViewSwitcher,谢谢。