Hi im using Glide to load image from my drawable folder and all works fine, this is my code :
Glide.with(this).load(R.drawable.my_drawable_image_name).into(myImageView);
i'm wondering if there is a way to load the image just by name , something like :
Glide.with(this).load(my_drawable_image_name).into(myImageView);
because i want to get the image name dynamically ,for example from a database...
do you have any suggestion about that? thanks in advance.
Call getImage
method for get Drawable
using Name only.
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;
}
Try this:
Glide.with(this)
.load(getResources()
.getIdentifier("my_drawable_image_name", "drawable", this.getPackageName())
.into(myImageView);
Use 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);
You can use the following code to get Bitmap
, Drawable
from URL using Glide . This code snippet is used to set drawableEnd/drawbleRight
for TextView
.
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?) {
}
})
I think you should try this
Glide.with(mContext)
.load(mContext.getResources().getDrawable(R.drawable.my_drawable_image_name))
.placeholder(R.mipmap.icon)
.into(myImageView);
Load method of Glide also accept drawable object as a parameter to load image. You just have to get the drawable object from your drawable image and pass it to the load method. I wanted rounded-corner of image and that's why I used Glide. In your case, You should use this.
myImageView.setImageDrawable(mContext.getResources().getDrawable(R.drawable.my_drawable_image_name))
If you also want rounded image use this.
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);
Easy way to load image from drawable by using Name
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);
The technical post webpages of this site follow the CC BY-SA 4.0 protocol. If you need to reprint, please indicate the site URL or the original address.Any question please contact:yoyou2525@163.com.