【发布时间】:2020-01-08 00:08:43
【问题描述】:
在我迁移到新版本的毕加索之前,我的应用程序运行良好,所以 android studio 告诉我应该将 .with 方法更改为 .get() 所以我更改了它,现在它不会加载图像,并且不会不要给我任何错误,这是我的代码:
Picasso.get().load(image).error(R.drawable.placeholder).placeholder(R.drawable.placeholder).centerCrop().resize(720,720).into(this.image_view_wallpaper_image);
public static void imageDownload(Context ctx, String url,String name){
Picasso.get()
.load(url)
.into(getTarget(url,name,ctx));
}
//target to save
private static Target getTarget(final String url, final String name, final Context ctx){
Target target = new Target(){
@Override
public void onBitmapLoaded(final Bitmap bitmap, Picasso.LoadedFrom from) {
new Thread(new Runnable() {
@Override
public void run() {
File file = new File(Environment.getExternalStorageDirectory().toString() + ctx.getResources().getString(R.string.DownloadFolder) + name);
try {
file.createNewFile();
FileOutputStream ostream = new FileOutputStream(file);
bitmap.compress(Bitmap.CompressFormat.JPEG, 80, ostream);
ostream.flush();
ostream.close();
} catch (IOException e) {
Log.e("IOException", e.getLocalizedMessage());
}
}
}).start();
Log.v("ok","onBitmapLoaded");
}
public void loadBitmap(String url) {
if (loadtarget == null) loadtarget = new Target() {
@Override
public void onBitmapLoaded(Bitmap bitmap, Picasso.LoadedFrom from) {
tempBmp=bitmap;
new WallpaperOperation().execute("");
}
@Override
public void onBitmapFailed(Exception e, Drawable errorDrawable) {
}
@Override
public void onPrepareLoad(Drawable placeHolderDrawable) {
}
};
Picasso.get().load(url).into(loadtarget);
}
在更新之前它是这样的,并且运行良好:
Picasso.with(getApplicationContext()).load(image).error(R.drawable.placeholder).placeholder(R.drawable.placeholder).centerCrop().resize(720,720).into(this.image_view_wallpaper_image);
显然这不是完整的代码,我只是把我改变的部分,我没有得到任何错误,毕加索是最新版本但它不会显示任何东西,我也迁移到了 android x。
【问题讨论】:
-
你能不能只检查这部分
Picasso.get().load(image).error(R.drawable.placeholder).placeholder(R.drawable.placeholder).centerCrop().resize(720,720).into(this.image_view_wallpaper_image);并报告它是否有效。我刚刚检查了您的第一行,它确实从互联网加载了图像。 -
@Farid 我检查了这部分,但它不会加载任何不在我的服务器或互联网上的东西,我也输入了直接地址但没有任何反应。
-
嗯,很有趣。升级库时,您是否更改了任何部分?另外,要检查问题是否出在当前项目上,您可以创建一个新的简单项目并在那里测试 Picasso。如果该项目有效,那么我们可以轻松发现问题,我猜
-
@Farid 这可能是因为我使用 http 而不是 https 吗?有关系吗?
-
如果你不想替换你所有的 url 然后添加这个依赖
implementation("com.squareup.okhttp3:okhttp:4.1.1")到gradle然后毕加索可以从http加载图像