我必须展示一个drawable
来自res
一个ImageView
.在这个应用程序中,我出于某些原因使用Picasso.
在这种情况下,我需要加载drawable
使用其URI而不是其id.为此,这是我的代码:
uri = Uri.parse(ContentResolver.SCHEME_ANDROID_RESOURCE + "://"+context.getPackageName()+"/drawable/" + drawableName);
Run Code Online (Sandbox Code Playgroud)
这里使用的drawableName是文件名而不是资源ID.
然后
Picasso.with(context).load(uri).into(imageView);
Run Code Online (Sandbox Code Playgroud)
我肯定知道可绘制的名字是正确的,但毕加索似乎不喜欢这个uri.
Aeg*_*gis 77
如果图像在您的drawable文件夹中,那么您可以加载它.
Picasso.with(context).load(R.drawable.drawableName).into(imageView);
Run Code Online (Sandbox Code Playgroud)
和毕加索将加载它不需要一个Uri.
如果您知道要加载的图像的整数值,则可以懒惰地从可绘制文件夹加载本地图像文件.
然后你可以这样做:
Picasso.with(getContext()).load(imageResourceId)
.error(R.drawable.ic_launcher)
.into(imageView);
Run Code Online (Sandbox Code Playgroud)
哪里
ImageView的
是您希望显示图像的视图.例如:
imageView = (ImageView) convertView
.findViewById(R.id.itemImage);
Run Code Online (Sandbox Code Playgroud)
在哪里
imageResourceId
是drawable的整数值.您可以通过以下方式检索此整数值:
int productImageId = resources.getIdentifier(
productImageName, "drawable", context.getPackageName());
Run Code Online (Sandbox Code Playgroud)
以及
productImageName
是你想要绘制的drawable的名称(即"ic_launcher")
这一切都可以从适配器内部完成
找到了答案.不幸的是,Picasso不允许通过URI进行可绘制加载.这是一个传入的功能.
从毕加索 v2 +开始,这是一个很大的修改。新版本对于管理图像缓存数据非常有用。它使用的是Singleton实例。
梯度
implementation 'com.squareup.picasso:picasso:2.71828'
Run Code Online (Sandbox Code Playgroud)
设置可绘制图像
Picasso.get()
.load(url)
.placeholder(R.drawable.user_placeholder)
.error(R.drawable.user_placeholder_error)
.into(imageView);
Run Code Online (Sandbox Code Playgroud)
奖励,可通过名称获取:
public static int getDrawableIdFromFileName(Context context, String nameOfDrawable) {
return context.getResources().getIdentifier(nameOfDrawable, "drawable", context.getPackageName());
}
Run Code Online (Sandbox Code Playgroud)
小智 6
如毕加索的文件中所述.
他们现在支持从URI加载Image,如下所示:
load(android.net.Uri uri)
Run Code Online (Sandbox Code Playgroud)
所以你必须做类似以下的事情:
Picasso.with(context).load(uri).into(imageView);
Run Code Online (Sandbox Code Playgroud)
就像你刚才做的一样.
希望有所帮助.
归档时间: |
|
查看次数: |
55754 次 |
最近记录: |