簡體   English   中英

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

因為我想動態獲取圖像名稱,例如從數據庫...

你對此有什么建議嗎? 提前致謝。

僅使用 Name 調用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;
}

嘗試這個:

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

使用烏里。

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從 URL 獲取BitmapDrawable 此代碼片段用於為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(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);

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

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM