Java 如何使用毕加索打开安卓系统中本地存储的图像?
我希望我的应用程序能够在没有互联网的情况下从设备存储中检索和显示图像。因此,当应用程序第一次使用互联网加载时,我将图像下载到一个文件夹中,然后在没有互联网的情况下,我要求它从本地存储中打开。 我的图像存储在此位置 /存储/仿真/0/shatayushi/shatayushi_cover3.jpg 在截取响应时,我调用以下代码,用于为recyclerview设置适配器Java 如何使用毕加索打开安卓系统中本地存储的图像?,java,android,android-volley,picasso,Java,Android,Android Volley,Picasso,我希望我的应用程序能够在没有互联网的情况下从设备存储中检索和显示图像。因此,当应用程序第一次使用互联网加载时,我将图像下载到一个文件夹中,然后在没有互联网的情况下,我要求它从本地存储中打开。 我的图像存储在此位置 /存储/仿真/0/shatayushi/shatayushi_cover3.jpg 在截取响应时,我调用以下代码,用于为recyclerview设置适配器 public ArrayList showJSON(String json) { ParseJSON pj =
public ArrayList showJSON(String json) {
ParseJSON pj = new ParseJSON(json);
pj.parseJSON();
image_url = ParseJSON.img_url;
mag_version = ParseJSON.magversion;
download_path = ParseJSON.download_url;
sample_url = ParseJSON.sample_url;
for (String img : image_url) {
downloadImages(img);
}
File sh_images = new File(Environment.getExternalStorageDirectory()+"/shatayushi");
String[] img_files = sh_images.list(new FilenameFilter() {
@Override
public boolean accept(File dir, String filename)
{
if (filename.toLowerCase().endsWith(".jpg"))
{
return true;
}else {
return false;
}
}
});
String stored_imgurl[]= new String[img_files.length];
for (int i=0; i<img_files.length;i++)
{
stored_imgurl[i]="/storage/emulated/0/shatayushi/"+img_files[i];
}
Log.d("StoredImages",stored_imgurl[0]);
ArrayList android_version = new ArrayList<>();
for (int i = 0; i < image_url.length; i++) {
MagazineVersion magazineVersion = new MagazineVersion();
magazineVersion.setMagazine_version_name(mag_version[i]);
magazineVersion.setMagazine_image_url(image_url[i]);
magazineVersion.setDownload_url(download_path[i]);
magazineVersion.setSample_url(sample_url[i]);
magazineVersion.setStored_imgurl(stored_imgurl[i]);
android_version.add(magazineVersion);
}
return android_version;
}
在我的DataAdapter中,我使用毕加索显示图像,如下所示:-
ArrayList androidVersions = showJSON(response);
DataAdapter adapter = new DataAdapter(DisplayMagazine.this, androidVersions);
recyclerView.setAdapter(adapter);
Picasso.with(context).load(magazineVersions.get(position).getStored_imgurl()).resize(400, 500).into(holder.iv_magazine);
这是我日志猫的一部分:-
07-30 13:44:12.633 16766-16766/com.indivitablesol.shatayushiapp
I/dalvikvm:DexOpt:非法方法访问(调用
Landroid/support/v7/widget/RecyclerView$ViewHolder;.isUpdated()Z from
Lcom/IndivitableSol/shatayushiapp/adapter/DataAdapter$ViewHolder;)
07-30 13:44:12.633 16766-16766/com.indivitablesol.shatayushiapp
I/dalvikvm:找不到方法
android.support.v7.widget.RecyclerView$ViewHolder.isUpdate,
引用自方法
com.inevitablesol.shatayushiapp.adapter.DataAdapter$ViewHolder.access$super
07-30 13:44:12.633 16766-16766/com.indivitablesol.shatayushiapp
W/dalvikvm:VFY:无法解析虚拟方法17450:
Landroid/support/v7/widget/RecyclerView$ViewHolder;。isUpdated()Z
表示非法方法访问,无法找到方法android.support.v7.widget.RecyclerView$ViewHolder.IsUpdate
,引用自方法com.inevitablesol.shatayushiapp.adapter.DataAdapter$ViewHolder.access$super
有谁能帮我一个解决方案吗?我是编程新手。谢谢。您可以使用下面的方法从SD卡/设备存储加载文件:在您的情况下,您必须确定存储中是否有文件可用。然后决定从web或存储加载
Picasso.with(context).load("file:///android_asset/DvpvklR.png").into(imageView2);
Picasso.with(context).load(new File(...)).into(imageView3);
确保您正在通过图像的完整路径
从读取您可以使用如下方法从SD卡/设备存储器加载文件:在您的情况下,您必须确定存储器中是否有可用的文件。然后决定从web或存储加载
Picasso.with(context).load("file:///android_asset/DvpvklR.png").into(imageView2);
Picasso.with(context).load(new File(...)).into(imageView3);
确保您正在通过图像的完整路径
阅读感谢您的编辑@AmitVaghela您能帮助解决问题吗。感谢您的编辑@AmitVaghela您能帮助解决问题吗。