gpt4 book ai didi

android - 只去一次目标,它应该去 4 次。 picasso/目标

转载 作者:行者123 更新时间:2023-11-29 17:17:36 25 4
gpt4 key购买 nike

所以我实现了 picasso,所以我可以下载图像并将它们保存在 sd 购物车上,所以当我需要时我可以在程序中使用它们。

我有一个 for 循环:

for (int i = 0; i < listaProdutos.size(); i++) {
caminho =listaProdutos.get(i).getImagem();
Picasso.with(getApplicationContext()).load("URL"+listaProdutos.get(i).getImagem()).into(target);
}

但我只进入目标一次,它是 for 循环的最后一个,

目标代码:

private 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().getAbsoluteFile(),caminho);
try
{
file.createNewFile();
FileOutputStream ostream = new FileOutputStream(file);
bitmap.compress(Bitmap.CompressFormat.JPEG, 75, ostream);
ostream.close();
}
catch (Exception e)
{
e.printStackTrace();
}*/
try {
verifyStoragePermissions(AtividadePrincipal.this);
String root = Environment.getExternalStorageDirectory().toString();
File myDir = new File(root + "/imagensDaApp");
myDir = new File(myDir, caminho);
if (!myDir.exists()) {
myDir.getParentFile().mkdirs();
//myDir.createNewFile();
}
FileOutputStream out = null;
out = new FileOutputStream(myDir);
bitmap.compress(Bitmap.CompressFormat.JPEG, 90, out);

out.flush();
out.close();
} catch (FileNotFoundException e) {
e.printStackTrace();
} catch (IOException e) {
e.printStackTrace();
}
//}
//}).start();
}
@Override
public void onBitmapFailed(Drawable errorDrawable) {
}

@Override
public void onPrepareLoad(Drawable placeHolderDrawable) {
if (placeHolderDrawable != null) {
}
}
};

我评论了该线程,因为无论有无,它都做同样的事情,如果你想你不能取消评论。

我已经搜索过了,但是找不到这个问题的任何答案,所有的 URL 都可以!

我已经这样做了 3 天,它保持不变。

是 listaProdutos.size() = 4;并且所有网址都可以!

如果你不明白这个问题,请说。

最佳答案

为什么不使用下面的代码呢?这里没有使用目标,所以没有目标被 gc'ed

我也自由地对您的代码进行了一些优化。我在没有测试代码的情况下完成了此操作,但它应该可以正常工作。

    new Thread(new Runnable(){
@Override
public void run(){

for (int i = 0; i < listaProdutos.size(); i++) {
caminho =listaProdutos.get(i).getImagem();

try {
verifyStoragePermissions(AtividadePrincipal.this);
String root = Environment.getExternalStorageDirectory().toString();
File myDir = new File(root + "/imagensDaApp");
myDir = new File(myDir, caminho);
if (!myDir.exists()) {
if(myDir.getParentFile().mkdirs()){
//myDir.createNewFile();
FileOutputStream out = null;
out = new FileOutputStream(myDir);
Picasso.with(getApplicationContext()).load("URL"+listaProdutos.get(i).getImagem()).get().compress(Bitmap.CompressFormat.JPEG, 90, out);

out.flush();
out.close();
}

}

} catch (FileNotFoundException e){
e.printStackTrace();
}catch{IOException e) {
e.printStackTrace();
}

}
}
}).start();

关于android - 只去一次目标,它应该去 4 次。 picasso/目标,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/38120984/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com