Android - 如何使用 Glide 按名称加载图像
Android - How to Load Image by name using Glide
您好,我正在使用 Glide 从我的可绘制文件夹加载图像,一切正常,这是我的代码:
Glide.with(this).load(R.drawable.my_drawable_image_name).into(myImageView);
我想知道是否有一种方法可以仅按名称加载图像,例如:
Glide.with(this).load(my_drawable_image_name).into(myImageView);
因为我想动态获取图像名称,例如从数据库...
对此你有什么建议吗?
提前致谢。
仅使用名称调用 getImage
方法获取 Drawable
。
Glide.with(this).load(getImage(my_drawable_image_name)).into(myImageView);
public int getImage(String imageName) {
int drawableResourceId = this.getResources().getIdentifier(imageName, "drawable", this.getPackageName());
return drawableResourceId;
}
使用 URI。
String image = "image.jpg";
String completePath = Environment.getExternalStorageDirectory() + "/" + image;
File file = new File(completePath);
Uri uri = Uri.fromFile(file);
Glide.with(this).load(uri).into(imageView);
试试这个:
Glide.with(this)
.load(getResources()
.getIdentifier("my_drawable_image_name", "drawable", this.getPackageName())
.into(myImageView);
我想你应该试试这个
Glide.with(mContext)
.load(mContext.getResources().getDrawable(R.drawable.my_drawable_image_name))
.placeholder(R.mipmap.icon)
.into(myImageView);
Glide的Load方法也接受drawable对象作为参数来加载图片。您只需从可绘制图像中获取可绘制对象并将其传递给加载方法。
我想要图像的圆角,这就是我使用 Glide 的原因。在你的情况下,你应该使用这个。
myImageView.setImageDrawable(mContext.getResources().getDrawable(R.drawable.my_drawable_image_name))
如果您还想要圆角图像,请使用此选项。
Glide.with(mContext)
.load(Glide.with(mContext)
.transform(new FitCenter(), new RoundedCorners((int) mContext.getResources().getDimension(R.dimen._10sdp))
.placeholder(R.mipmap.icon)
.into(myImageView);
使用名称从可绘制对象加载图像的简便方法
Glide.with(context)
.load(context.getResources().getIdentifier("my_drawable_image_name", "drawable", context.getPackageName()))
.diskCacheStrategy(DiskCacheStrategy.AUTOMATIC)
.placeholder(R.drawable.add_photo_placeholder)
.error(R.color.red)
.override(Target.SIZE_ORIGINAL, Target.SIZE_ORIGINAL)
.into(userPhoto);
您可以使用以下代码使用 Glide 从 URL 获取 Bitmap
、Drawable
。此代码段用于为 TextView
.
设置 drawableEnd/drawbleRight
Glide.with(context)
.asBitmap()
.load(url)
.into(object : CustomTarget<Bitmap>() {
override fun onResourceReady(
bitmap: Bitmap,
transition: Transition<in Bitmap>?
) {
val drawable: Drawable = BitmapDrawable(
context.resources,
bitmap
)
textView.setCompoundDrawablesWithIntrinsicBounds(
null, null, drawable, null
)
}
override fun onLoadCleared(placeholder: Drawable?) {
}
})
您好,我正在使用 Glide 从我的可绘制文件夹加载图像,一切正常,这是我的代码:
Glide.with(this).load(R.drawable.my_drawable_image_name).into(myImageView);
我想知道是否有一种方法可以仅按名称加载图像,例如:
Glide.with(this).load(my_drawable_image_name).into(myImageView);
因为我想动态获取图像名称,例如从数据库...
对此你有什么建议吗? 提前致谢。
仅使用名称调用 getImage
方法获取 Drawable
。
Glide.with(this).load(getImage(my_drawable_image_name)).into(myImageView);
public int getImage(String imageName) {
int drawableResourceId = this.getResources().getIdentifier(imageName, "drawable", this.getPackageName());
return drawableResourceId;
}
使用 URI。
String image = "image.jpg";
String completePath = Environment.getExternalStorageDirectory() + "/" + image;
File file = new File(completePath);
Uri uri = Uri.fromFile(file);
Glide.with(this).load(uri).into(imageView);
试试这个:
Glide.with(this)
.load(getResources()
.getIdentifier("my_drawable_image_name", "drawable", this.getPackageName())
.into(myImageView);
我想你应该试试这个
Glide.with(mContext)
.load(mContext.getResources().getDrawable(R.drawable.my_drawable_image_name))
.placeholder(R.mipmap.icon)
.into(myImageView);
Glide的Load方法也接受drawable对象作为参数来加载图片。您只需从可绘制图像中获取可绘制对象并将其传递给加载方法。 我想要图像的圆角,这就是我使用 Glide 的原因。在你的情况下,你应该使用这个。
myImageView.setImageDrawable(mContext.getResources().getDrawable(R.drawable.my_drawable_image_name))
如果您还想要圆角图像,请使用此选项。
Glide.with(mContext)
.load(Glide.with(mContext)
.transform(new FitCenter(), new RoundedCorners((int) mContext.getResources().getDimension(R.dimen._10sdp))
.placeholder(R.mipmap.icon)
.into(myImageView);
使用名称从可绘制对象加载图像的简便方法
Glide.with(context)
.load(context.getResources().getIdentifier("my_drawable_image_name", "drawable", context.getPackageName()))
.diskCacheStrategy(DiskCacheStrategy.AUTOMATIC)
.placeholder(R.drawable.add_photo_placeholder)
.error(R.color.red)
.override(Target.SIZE_ORIGINAL, Target.SIZE_ORIGINAL)
.into(userPhoto);
您可以使用以下代码使用 Glide 从 URL 获取 Bitmap
、Drawable
。此代码段用于为 TextView
.
drawableEnd/drawbleRight
Glide.with(context)
.asBitmap()
.load(url)
.into(object : CustomTarget<Bitmap>() {
override fun onResourceReady(
bitmap: Bitmap,
transition: Transition<in Bitmap>?
) {
val drawable: Drawable = BitmapDrawable(
context.resources,
bitmap
)
textView.setCompoundDrawablesWithIntrinsicBounds(
null, null, drawable, null
)
}
override fun onLoadCleared(placeholder: Drawable?) {
}
})