我正在使用ImageSwitcher
进行淡化,以淡化效果触摸屏幕时会改变背景。
这是我在使用Glide之前更改它们的方式:
MainActivity :
override fun onCreate(savedInstanceState: Bundle?) {
...
val `in` = AnimationUtils.loadAnimation(this, R.anim.fadein)
val out = AnimationUtils.loadAnimation(this, R.anim.fadeout)
view_background.setFactory {
val imageView = ImageView(this@MainActivity)
imageView.scaleType = ImageView.ScaleType.CENTER_CROP
imageView
}
...
}
更改背景的外部方法:
private fun setBackgroundWithImage(activity: Activity, image: Int) {
val backgroundView= activity.findViewById<ImageSwitcher>(R.id.view_background)
backgroundView.setImageResource(image)
}
view_background
:
<ImageSwitcher
android:id="@+id/view_background"
android:layout_width="wrap_content"
android:layout_height="fill_parent"
android:adjustViewBounds="true"
android:alpha="0.3"
android:onClick="onTouchBackground"
android:scaleType="centerCrop" />
这工作正常,并且褪色正确发生。
这是我尝试使用Glide的方法:
private fun setBackgroundWithImage(activity: Activity, url: String) {
val backgroundView= activity.findViewById<ImageSwitcher>(R.id.view_background)
Glide.with(activity)
.asGif()
.load(url)
.into(backgroundView.nextView as ImageView)
backgroundView.showNext()
}
但是,这不起作用,始终显示空白背景。 为什么会这样?