从URL加载的图像缩放时,我遇到一些问题。
它们每秒钟缩放比例不同。因此,一开始它们已正确加载。如果我刷新视图。图像按比例缩小。然后,如果我再刷新一次。视图将再次正确缩放。
还有其他滑行有类似问题的人吗?
fun ImageView.loadUrl(key: String?, gameName: String?, width: Int?, height: Int?) {
val storage = FirebaseStorage.getInstance()
GlideApp.with(context)
.load(storage.getGameStorageReference(gameName!!, key!!))
.into(this)
}
这是图像的加载方式。忽略函数中的其他属性。它们将在以后使用。
正确的方式
错误的方式
XML
<ImageView
android:id="@+id/iv_feed_image_content_image"
android:layout_width="0dp"
android:layout_height="wrap_content"
android:layout_marginTop="16dp"
android:scaleType="fitCenter"
app:layout_constraintEnd_toEndOf="parent"
app:layout_constraintStart_toStartOf="parent"
app:layout_constraintTop_toBottomOf="@+id/tv_feed_image_input"
tools:src="@tools:sample/avatars"/>
答案 0 :(得分:0)
找到了解决此问题的方法。感谢以下网址https://github.com/bumptech/glide/issues/1591
fun ImageView.loadUrl(key: String?, gameName: String?, width: Int?, height: Int?) {
layout(0,0,0,0)
val storage = FirebaseStorage.getInstance()
GlideApp.with(context)
.load(storage.getGameStorageReference(gameName!!, key!!))
.into(this)
}
因此,换句话说,我只是叫imageview.layout(0,0,0,0)
重设了imageview。这是在override fun onBindViewHolder(holder: RecyclerView.ViewHolder, position: Int)