我从图像库中的路径获取文件,并尝试将其加载到图像视图,如下所示.文件路径是:/storage/sdcard0/DCIM/Camera/1436267579864.jpg.我也试过传递Uri我也有读SD卡的权限.
它最终出现在onError()方法中.但是类似的方法适用于网址.我该如何解决这个问题?
private void getImage(File file) { if(file.exists()) { Picasso.with(activity) .load(file) .error(R.drawable.noimage) .into(imgPreview,new Callback() { @Override public void onSuccess() { if (progressBar != null && imgPreview != null) { imgPreview.setVisibility(View.VISIBLE); imgPreview.setTag("loaded"); progressBar.setVisibility(View.GONE); } } @Override public void onError() { if (progressBar != null && imgPreview != null) { imgPreview.setVisibility(View.VISIBLE); progressBar.setVisibility(View.GONE); } } }); }
<uses-sdk android:minSdkVersion="11" android:targetSdkVersion="21" /> <uses-permission android:name="android.permission.WRITE_EXTERNAL_STORAGE"/> <uses-permission android:name="android.permission.READ_EXTERNAL_STORAGE"/> <uses-permission android:name="android.permission.INTERNET"/> <uses-permission android:name="android.permission.ACCESS_NETWORK_STATE"/>
解决方法
虽然为时已晚,但我遇到了同样的问题,所以我用以下方式解决了.只需在路径的开头使用并附加“file://”即可.看看这个:
Picasso.with(context) // .load("file://" +myFilePath) // .error(R.mipmap.error) .placeholder(R.mipmap.ic_launcher) .fit() .tag(MyActivity.this) // .into(imageView,new ImageLoadedCallback(progressBar) { @Override public void onSuccess() { progressBar.setVisibility(View.GONE); } @Override public void onError() { Log.d("Picasso Error","Error"); } });
这解决了我的问题.只是回答,如果有人陷入同样的问题并来到这里寻求解决方案,那么他可以通过这个解决他的问题.
版权声明:本文内容由互联网用户自发贡献,该文观点与技术仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 dio@foxmail.com 举报,一经查实,本站将立刻删除。