Как с помощью Glide для Android загружать изображения из активов и ресурсов?

Я хочу, чтобы все преобразования, сток и анимация были идентичными, и подумал, можем ли мы передать идентификатор ресурса или имя актива в Glide, чтобы загрузить его локально?


person ir2pid    schedule 01.05.2015    source источник


Ответы (3)


Для идентификаторов ресурсов вы можете использовать:

Glide.with(fragment)
    .load(R.drawable.resource_id)
    .into(imageView);

Для активов вы можете создать uri актива:

Glide.with(fragment)
    .load(Uri.parse("file:///android_asset/<assetName>"))
    .into(imageView);
person Sam Judd    schedule 01.05.2015
comment
для assetsName не забудьте добавить расширение, например: image.jpg - person Vitalie Suba; 18.05.2016
comment
Разве это не должно быть R.drawable.resource_id? - person Pedro Oliveira; 10.11.2017
comment
Это может быть очевидно для других, но я потратил много времени на выяснение этого, потому что я думал, что android_asset/assetName следует заменить на мой путь к активу. В конце концов я узнал, что это только assetName, а file:///android_asset/ всегда должен присутствовать. - person Anigif; 05.03.2018
comment
Использование with(fragment) устарело. Теперь вы должны использовать with(context) - person Lorenzo Vincenzi; 20.09.2018

Glide
.with(context)
.load(uri)
.asBitmap()
.placeholder(R.drawable.yourimage)
.error(R.drawable.yourimage)
.into(yourview);

Помимо приведенного выше ответа, если URL-адрес изображения возвращает значение null, вы можете загрузить изображение по умолчанию в представление, как указано выше.

person Senthilvel S    schedule 01.09.2017

Работает при использовании .asBitmap()

String pathUri="file:///android_asset/img/flower.jpg";
Glide.with(context).asBitmap().load(Uri.parse(pathUri)).into(holder.imgView_post);
person Farhad Farzin    schedule 20.09.2019