Picasso load drawable resources from their URI

◇◆丶佛笑我妖孽 提交于 2019-11-27 04:44:30

If the images is in your drawable folder then you can just load it.

Picasso.with(context).load(R.drawable.drawableName).into(imageView);

and picasso will load it no need for an Uri.

RheeBee
  • This is if you don't want to hardcode the image that you are going to load...

You can load local image files from your drawable folder lazily if you know the integer value of the image that you want to be loaded.

Then you can just do:

Picasso.with(getContext()).load(imageResourceId)
.error(R.drawable.ic_launcher)
.into(imageView);

Where

imageView

is the view you wish to display the image. For example:

imageView = (ImageView) convertView
.findViewById(R.id.itemImage);

And where

imageResourceId

is the integer value of the drawable. You can retrieve this integer value by:

int productImageId = resources.getIdentifier(
productImageName, "drawable", context.getPackageName());

as well as

productImageName

is the name of the drawable you want to draw (i.e. "ic_launcher")

THIS CAN ALL BE DONE INSIDE FROM THE ADAPTER

Found the answer. Unfortunately, Picasso do not allow drawable loading via URI. It is an incoming feature.

As mentioned in the documentation of Picasso .

they are now supporting loading Image from URI like the following :

load(android.net.Uri uri) 

so you have to do something like the following :

Picasso.with(context).load(uri).into(imageView); 

just like what you are doing already .

Hopethat helps .

Md Imran Choudhury

From picasso v2+ here is a big modification. The new version is very helpful in order to manage image cache data. It's using Singleton Instance.

GRADLE

implementation 'com.squareup.picasso:picasso:2.71828'

Set drawable image

Picasso.get()
    .load(url)
    .placeholder(R.drawable.user_placeholder)
    .error(R.drawable.user_placeholder_error)
    .into(imageView);

Bonus, get drawable by name:

public static int getDrawableIdFromFileName(Context context, String nameOfDrawable) {
        return context.getResources().getIdentifier(nameOfDrawable, "drawable", context.getPackageName());
}
标签
易学教程内所有资源均来自网络或用户发布的内容,如有违反法律规定的内容欢迎反馈
该文章没有解决你所遇到的问题?点击提问,说说你的问题,让更多的人一起探讨吧!