小编Qua*_*ark的帖子

使用ImageView ScaleType设置TransitionDrawable

我有这个代码来交叉淡化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);
}
Run Code Online (Sandbox Code Playgroud)

ImageView scaleType设置为centerCropXML布局.但是,当交叉淡入淡出完成时,新位图设置为fitXY.在其他线程中,他们说可以通过重置来解决scaleType,但它也不起作用.在内存方面,调整位图大小不是一个合适的解决方案.有没有解决方法来实现这个?非常感谢你.

PS:请不要建议交叉淡化2个ImageViews,或者使用ViewSwitcher谢谢.

android android-animation transitiondrawable android-drawable android-bitmap

5
推荐指数
1
解决办法
968
查看次数