本文介绍了如何从服务器 url 在bottomnavigationview 中设置用户个人资料图像的处理方法,对大家解决问题具有一定的参考价值,需要的朋友们下面随着小编来一起学习吧!
问题描述
我想在底部导航视图中发送我的个人资料图片,像这样滑动:
I want to sent the my profile image in bottom navigation view with glide like this:
Glide.with(this)
.asBitmap()
.load(user.getProfileImageUrl())
.apply(RequestOptions.circleCropTransform())
.into(new CustomTarget<Bitmap>() {
@SuppressLint("NewApi")
@Override
public void onResourceReady(@NonNull Bitmap resource,
@Nullable Transition<? super Bitmap> transition) {
Drawable drawable = new BitmapDrawable(getResources(), resource);
navigationView.getMenu().findItem(R.id.item_profile).setIcon(drawable);
}
@Override
public void onLoadCleared(@Nullable Drawable placeholder) {
}
});
喜欢这个,但是图片没有设置.
Like this but the image is not set.
推荐答案
您可以自定义底部导航并使用 Glide 加载图像.
You can customize Bottom Navigation and use Glide for load image.
从 navigationItemView 中找到 ImageView:
find ImageView from navigationItemView:
val navigationItemView = findViewById<BottomNavigationItemView>(itemId)
val imageView = navigationItemView.children.find {
it is ImageView
} as? ImageView ?: return
loadProfileImage(imageView, imageUrl, placeHolderResourceId, itemId)
加载图片:
private fun loadProfileImage(
imageView: ImageView,
imageUrl: String,
@DrawableRes placeHolderResourceId: Int,
@IdRes itemId: Int
) {
Glide.with(this)
.load(imageUrl)
.diskCacheStrategy(DiskCacheStrategy.NONE)
.optionalCircleCrop()
.placeholder(placeHolderResourceId)
.listener(object : RequestListener<Drawable> {
override fun onLoadFailed(
e: GlideException?,
model: Any?,
target: Target<Drawable>?,
isFirstResource: Boolean
): Boolean {
return false
}
override fun onResourceReady(
resource: Drawable?,
model: Any?,
target: Target<Drawable>?,
dataSource: DataSource?,
isFirstResource: Boolean
): Boolean {
isImageLoaded = true
if (selectedItemId == itemId) {
imageView.clearColorFilter()
handleImageItemSelected(imageView)
}
return false
}
})
.into(imageView)
}
请看这个 repo...我已经实现了这个场景!
please see this repo...I have implemented this scenario!
https://github.com/farshadrezaee/load-image-in-底部导航
这篇关于如何从服务器 url 在bottomnavigationview 中设置用户个人资料图像的文章就介绍到这了,希望我们推荐的答案对大家有所帮助,也希望大家多多支持!