Android-如何使用Glide按名称加载图像

Android-如何使用Glide按名称加载图像,android,android-glide,Android,Android Glide,嗨,我正在使用Glide从我的可绘制文件夹加载图像,一切正常,这是我的代码: Glide.with(this).load(R.drawable.my_drawable_image_name).into(myImageView); 我想知道是否有一种方法可以通过名称加载图像,例如: Glide.with(this).load(my_drawable_image_name).into(myImageView); 因为我想动态地获取图像名称,例如从数据库 你对此有什么建议吗? 提前感谢。仅使用名称

嗨,我正在使用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方法。 我想要图像的圆角,这就是我使用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);
如果您还想要圆形图像,请使用此选项

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);

使用名称从drawable加载图像的简单方法

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);

您可以使用以下代码从URL获取
位图
可绘制
。此代码段用于设置
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.with(上下文)
.asBitmap()
.load(url)
.into(对象:CustomTarget(){
覆盖资源就绪(
位图:位图,
过渡:过渡?
) {
val drawable:drawable=BitmapDrawable(
背景资源,
位图
)
textView.setCompoundDrawableSwithinInstructBounds(
空的,空的,可绘制的,空的
)
}
覆盖已清除(占位符:可绘制?){
}
})

图像存储在哪里?@James,你能分享一下使用Glide制作静态可绘制图像的好处吗?直接使用setImageResource?从2021年开始谢谢