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

时间:2017-03-17 22:27:55

标签: android android-glide

您好我使用Glide从我的drawable文件夹加载图片,一切正常,这是我的代码:

Glide.with(this).load(R.drawable.my_drawable_image_name).into(myImageView);

我想知道是否有办法按名称加载图片,例如:

Glide.with(this).load(my_drawable_image_name).into(myImageView);

因为我想动态获取图像名称,例如从数据库中获取...

你有什么建议吗? 提前谢谢。

6 个答案:

答案 0 :(得分:24)

仅使用名称调用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;
}

答案 1 :(得分:6)

试试这个:

Glide.with(this)
.load(getResources()
.getIdentifier("my_drawable_image_name", "drawable", this.getPackageName())
.into(myImageView);

答案 2 :(得分:3)

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

答案 3 :(得分:0)

我认为您应该尝试这个

Glide.with(mContext)
            .load(mContext.getResources().getDrawable(R.drawable.my_drawable_image_name))
            .placeholder(R.mipmap.icon)
            .into(myImageView);

Glide的Load方法也接受可绘制对象作为参数来加载图像。您只需要从可绘制图像中获取可绘制对象,然后将其传递给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);

答案 4 :(得分:0)

使用“名称”从可绘制对象加载图像的简便方法

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

答案 5 :(得分:0)

您可以使用以下代码从使用 Glide 的 URL 获取 BitmapDrawable。此代码段用于为 drawableEnd/drawbleRight 设置 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?) {

                }
            })