毕加索 - 如何顺序获取图像

时间:2015-04-02 14:25:33

标签: android picasso

我想在Picasso中检索图像以供日后使用并保存在缓存中,此时我使用此代码:

        for(int i=0; i<urlList.size(); i++) {
            Picasso.with(getActivity())
                    .load(url.get(i))
                    .fetch();
        }

但我想按顺序检索它们。什么是最好的?

1 个答案:

答案 0 :(得分:0)

您可以将图片加载到Target,如果您有一个网址数组,则可以从Target递归加载它们。

执行此操作的示例活动:

public class MainActivity extends ActionBarActivity{

    private ArrayList<String> urls;

    @Override
    protected void onCreate(Bundle savedInstanceState){
        super.onCreate(savedInstanceState);
        setContentView(R.layout.activity_main);
        urls = new ArrayList<>();
        urls.add("http://placehold.it/300&text=0");
        urls.add("http://placehold.it/300&text=1");
        urls.add("http://placehold.it/300&text=2");
        urls.add("http://placehold.it/300&text=3");
        urls.add("http://placehold.it/300&text=4");

        loadImages(0);
    }

    private void loadImages(final int index){
        Target t = new Target(){
            @Override
            public void onBitmapLoaded(Bitmap bitmap, Picasso.LoadedFrom from){
                Log.w("image", "image received" + index);
                loadImages(index + 1);
            }

            @Override
            public void onBitmapFailed(Drawable errorDrawable){
            }

            @Override
            public void onPrepareLoad(Drawable placeHolderDrawable){
            }
        };

        if(index < urls.size())
            Picasso.with(this)
                    .load(urls.get(index))
                    .into(t);
    }
}