2015-04-03 2 views
5

Я хочу создать приложение, которое отображает изображения в gridview, используя библиотеку picasso. Изображения извлекаются удаленным сервером. Должен ли я создавать класс AsyncTask или этот класс обрабатывается самой библиотекой Picasso? Все уроки пикассо, которые я видел до сих пор, кажутся немного расплывчатыми.Picasso Library and GridView Images

Thanks,

Theo.

+2

Да Picasso мощной загрузки изображений и библиотеку кэширования для Android. Вам не нужно писать задачу async для загрузки изображения, которое они обрабатывают этой библиотекой. дайте мне знать, если вам нужна дополнительная информация, как писать, я могу показать вам реализацию в виде сетки. –

+0

Спасибо за ответ. Я попробую его с gridview, и если у меня возникнут проблемы, я попрошу вас. – Theo

ответ

7

Его очень простой в использовании Picasso Библиотеки для загрузки изображений в GridView, as demonstrated here,

class SampleGridViewAdapter extends BaseAdapter { 
    private final Context context; 
    private final List<String> urls = new ArrayList<String>(); 

    public SampleGridViewAdapter(Context context) { 
    this.context = context; 

    // Ensure we get a different ordering of images on each run. 
    Collections.addAll(urls, Data.URLS); 
    Collections.shuffle(urls); 

    // Triple up the list. 
    ArrayList<String> copy = new ArrayList<String>(urls); 
    urls.addAll(copy); 
    urls.addAll(copy); 
    } 

    @Override public View getView(int position, View convertView, ViewGroup parent) { 
    SquaredImageView view = (SquaredImageView) convertView; 
    if (view == null) { 
     view = new SquaredImageView(context); 
     view.setScaleType(CENTER_CROP); 
    } 

    // Get the image URL for the current position. 
    String url = getItem(position); 

    // Trigger the download of the URL asynchronously into the image view. 
    Picasso.with(context) // 
     .load(url) // 
     .placeholder(R.drawable.placeholder) // 
     .error(R.drawable.error) // 
     .fit() // 
     .tag(context) // 
     .into(view); 

    return view; 
    } 

    @Override public int getCount() { 
    return urls.size(); 
    } 

    @Override public String getItem(int position) { 
    return urls.get(position); 
    } 

    @Override public long getItemId(int position) { 
    return position; 
    } 
} 
+0

Спасибо, мой друг. Береги себя. – Theo