使用 TransitionDrawable 交叉淡入淡出可绘制对象。可以保留纵横比吗?

问题描述 投票:0回答:1

我正在尝试在我正在制作的 Android 应用程序中的背景之间进行交叉淡入淡出。 TransitionDrawable 似乎是实现此目的的最佳方法。不幸的是,似乎没有任何方法可以在不挤压或拉伸生成的图像的情况下做到这一点。这是我的代码示例:

            val imageResource = setSpecialImage(principalEvent)
            if (isFirstTimeLoadingBackground) {
                isFirstTimeLoadingBackground = false
            } else {
                val metrics: DisplayMetrics = resources.displayMetrics
                val screenWidth = metrics.widthPixels
                val screenHeight = metrics.heightPixels
                val bitmap = Picasso.get().load(imageResource)
                    .resize(screenWidth, screenHeight)
                    .centerCrop()
                    .get()
                val newDrawable = BitmapDrawable(resources, bitmap)
                val backgrounds = arrayOf(backgroundimage.drawable, newDrawable)
                val transition = TransitionDrawable(backgrounds)
                backgroundimage.setImageDrawable(transition)
                backgroundimage.scaleType = ImageView.ScaleType.CENTER_CROP
                transition.startTransition(100)
            }
            backgroundimage.setImageResource(imageResource)

在使用 TransitionDrawable() 之前,我尝试使用 Picasso 加载和更改第二张图像,但似乎过渡本身导致了问题。

android kotlin imageview drawable transitiondrawable
1个回答
0
投票

有两件事需要注意,尽管我尚未验证它们是否会解决您的问题:

© www.soinside.com 2019 - 2024. All rights reserved.