【发布时间】:2018-10-31 14:26:28
【问题描述】:
我正在使用 Picasso 库从 URL 下载图像。这是我第一次尝试毕加索
场景:我想从服务器下载一些图像并将它们存储到一个文件中。我知道如何存储到文件和检索。当我运行下面的代码时,我碰巧看到我只得到最后一张图片。毕加索似乎并行运行。我通过显示吐司消息来检查它。有没有办法解决这个问题?
问题:我只得到最后一个 url 图片。
这是我的代码
static int count = 0;
@Override
protected void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
setContentView(R.layout.activity_main);
for (int i = 0; i < url.length; i++)
{
// url is String array which has 2 urls.
++count; // Incrementing the count by 1
Picasso.with(this).load(url[i])
.into(new Target() {
@Override
public void onPrepareLoad(Drawable arg0) {
// TODO Auto-generated method stub
}
@Override
public void onBitmapLoaded(Bitmap arg0, LoadedFrom arg1) {
// TODO Auto-generated method stub
arg0 = Bitmap.createScaledBitmap(arg0, 150, 150, true);
filePath = saveFile(arg0); // I'm just calling this function to check how many times `onBitmapLoaded` is called. And it is called only once...!!
}
@Override
public void onBitmapFailed(Drawable arg0) {
// TODO Auto-generated method stub
}
});
}
}
public String saveFile (Bitmap bm)
{
Toast.makeText(getApplicationContext(), ""+count, 100).show(); // Displaying the value of count, which always display as **2**.
return "";
}
【问题讨论】:
-
是的,当您在时间 count 加载的第一个图像位图在迭代中达到值 2 时,它总是显示 count 2 becz。
-
你说得对。谢谢@Haresh。所以我可以用这段代码将许多图像保存到文件中?
-
我发布了答案,现在您可以检查并更清楚地了解它。
-
,你看看我的回答了吗?