2015-04-03 22 views
5

Chcę zbudować aplikację, która wyświetla obrazy w widoku siatki przy użyciu biblioteki Picasso. Obrazy są pobierane przez zdalny serwer. Czy powinienem utworzyć klasę AsyncTask lub czy ta klasa jest obsługiwana przez samą bibliotekę Picassa? Wszystkie tutoriale Picasso, które do tej pory widziałem, wydają się nieco niejasne.Biblioteka Picasso i obrazy GridView

Dzięki,

Theo.

+2

Tak Picasso potężny pobieranie obrazu i biblioteki buforowania dla Androida. Nie musisz pisać zadania asynchronicznego, aby pobrać obraz, obsługują tę bibliotekę. daj mi znać, jeśli potrzebujesz więcej informacji, jak go napisać, mogę pokazać ci narzędzie w widoku siatki. –

+0

Dzięki za odpowiedź. Spróbuję tego z gridview i jeśli będę miał jakiś problem, zapytam cię. – Theo

Odpowiedz

7

Jest bardzo prosty w użyciu Picasso lib do ładowania obrazów w 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

Dziękuję, mój przyjacielu. Dbać. – Theo

Powiązane problemy