gpt4 book ai didi

安卓 TransitionDrawable : image scaletype changes upon fragment resuming

转载 作者:塔克拉玛干 更新时间:2023-11-03 00:29:52 26 4
gpt4 key购买 nike

我有一个 ImageView 设置为 fragment 的背景( ImageView 在宽度和高度上都设置为 match_parent)并且 scaletype 设置为 centerCrop。我下载了一张图片以异步方式放入其中,并在下载完成后使用 TransitionDrawable 在两者之间交叉淡入淡出。

图像第一次以正确的 scaletype 出现,但是如果我导航到另一个 fragment 然后返回到以 imageview 作为背景的这个 fragment ,图像看起来扭曲/拉伸(stretch)(看起来 imageView 设置为 fitXY 而不是)

如果我不使用 TransitionDrawable,图像会保持它们应有的样子。

是否有保持正确宽高比的 TransitionDrawable 等价物?还是我需要在 TransitionDrawable 上设置一些东西来防止这种大小调整?

我真正想做的是在图像之间进行漂亮的过渡。我正在考虑在完成动画后将图像设置为 TransitionDrawable 的第二层可绘制对象,但是无法监视动画何时完成...

编辑:我想我会提到图像的尺寸不同,不确定这是否会有所不同

编辑 2:这是设置可绘制对象的代码:

  //code above to download image
BitmapDrawable bitmapDrawable = new BitmapDrawable(imageview.getResources(), bitmap);
TransitionDrawable transitionDrawable = new TransitionDrawable(new Drawable[]{imageview.getDrawable(), bitmapDrawable});
imageview.setImageDrawable(transitionDrawable);
transitionDrawable.startTransition(300);

最佳答案

您是否使用了不同尺寸的图片?这可能是导致问题的原因。尝试使用相同尺寸的图像。

编辑:找到解决方案:使用setImageDrawable 命令后,您需要再次设置ImageView 的scaletype。

    BitmapDrawable bitmapDrawable = new BitmapDrawable(imageview.getResources(), bitmap);
TransitionDrawable transitionDrawable = new TransitionDrawable(new Drawable[]{imageview.getDrawable(), bitmapDrawable});
imageview.setImageDrawable(transitionDrawable);
imageview.setScaleType(ImageView.ScaleType.CENTER_CROP);
transitionDrawable.startTransition(300);

关于安卓 TransitionDrawable : image scaletype changes upon fragment resuming,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/19381970/

26 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com