Warning: file_get_contents(/data/phpspider/zhask/data//catemap/3/android/205.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Android Can';t使用毕加索从磁盘加载图像_Android_Picasso - Fatal编程技术网

Android Can';t使用毕加索从磁盘加载图像

Android Can';t使用毕加索从磁盘加载图像,android,picasso,Android,Picasso,起初,我在Stackoverflow和internet中搜索并找到许多答案,但当我尝试这些答案时,没有答案可以解决我的问题。在我的项目中,我创建了一个名为files的目录 或 或 或 但没有任何效果,我只看到错误图像。Picasso将从您设备上的SD卡加载图像,而不是从您的AndroidStudio项目加载图像。您可以做的是将图片移动到drawable nodpi文件夹中(如果它还不存在,请创建它),然后您可以像这样加载图片 Picasso.with(context).load(R.drawa

起初,我在Stackoverflow和internet中搜索并找到许多答案,但当我尝试这些答案时,没有答案可以解决我的问题。在我的项目中,我创建了一个名为
files
的目录


但没有任何效果,我只看到错误图像。

Picasso
将从您设备上的SD卡加载图像,而不是从您的
AndroidStudio
项目加载图像。您可以做的是将图片移动到
drawable nodpi
文件夹中(如果它还不存在,请创建它),然后您可以像这样加载图片

Picasso.with(context).load(R.drawable.img_4).error(R.drawable.e;boss).into(imgArticle);

如果要将文件作为
资产
的一部分,则应将目录称为
资产
,而不是
文件
。您可以阅读更多内容,也可以从文件中加载图像。毕加索允许。这是毕加索的

RESOURCE LOADING

Resources, assets, files, content providers are all supported as image sources.

Picasso.with(context).load(R.drawable.landing_screen).into(imageView1);
Picasso.with(context).load("file:///android_asset/DvpvklR.png").into(imageView2);
Picasso.with(context).load(new File(...)).into(imageView3);
加载(新文件(…)-但此处的文件必须是在/data/data/package.name/…中创建的文件

所以要么将文件复制到资产,要么指定/data/data/package.name/…的路径。。。或者从SD卡。请参阅以了解如何从SD卡加载。您可以使用在此处创建文件


我认为android项目结构中没有文件/文件夹。您可能想看一看。

根据对您的问题的评论,我认为您希望使用“文件”文件夹的原因是您希望按从数据库检索的名称选择图像

如果图像仍然保存在可绘制文件夹中(通常情况下),则同样的情况也很可能发生

您可以使用从数据库中选择的名称获取可绘制资源,如下所示:

Drawable d= DrawableManager.getDrawable("img_4.png");
这将减少处理器在查找和读取存储器时的负载,并减少代码

如果必须通过图像名称获取资源id,请使用以下命令:

int drawableResourceId = this.getResources().getIdentifier("drawableName", "drawable", this.getPackageName());

然后传递整数id而不是R.drawable.drawableName

你能发布错误消息吗..@Keshav1234它没有显示任何文本错误。为什么不将图像放入
\res\drawable
中并避免所有的复杂性?在
\src\main\files
文件夹中放置它是否有特定的原因?@Virus我有200多个图像,并将图像名称保存在数据库中。因此,我需要一种加载图像的方法。您还可以使用
drawable d=DrawableManager.getDrawable(“img_4.png”)
然后使用drawable对象从资源中加载图像。我将图像名称保存在sqlite表中。所以我需要一种用毕加索显示图像的方法。那么我的图像保存在哪里呢?但是在毕加索的网站上我看到了这个
picasso.with(context.load)(“file:///android_asset/DvpvklR.png)转换为(imageView2)那么android_资产是否是android studio的一部分?资产是可以的。但它被称为
资产
,而不是
文件
“毕加索.with(context).load(”file:///android_asset/DvpvklR.png)。插入(图像视图2)
Picasso.with(context).load(R.drawable.img_4).error(R.drawable.e;boss).into(imgArticle);
RESOURCE LOADING

Resources, assets, files, content providers are all supported as image sources.

Picasso.with(context).load(R.drawable.landing_screen).into(imageView1);
Picasso.with(context).load("file:///android_asset/DvpvklR.png").into(imageView2);
Picasso.with(context).load(new File(...)).into(imageView3);
Drawable d= DrawableManager.getDrawable("img_4.png");
int drawableResourceId = this.getResources().getIdentifier("drawableName", "drawable", this.getPackageName());