带有Glide的ImageSwitcher

时间:2019-03-09 12:13:49

标签: android android-glide imageswitcher

我正在使用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()
}

但是,这不起作用,始终显示空白背景。 为什么会这样?

0 个答案:

没有答案