2015-04-03 34 views
5

Tôi muốn tạo ứng dụng hiển thị hình ảnh trong chế độ xem lưới bằng cách sử dụng thư viện picasso. Các hình ảnh được truy xuất bởi một máy chủ từ xa. Tôi có nên tạo một lớp AsyncTask hay là lớp này được xử lý bởi Thư viện Picasso không? Tất cả các hướng dẫn picasso tôi đã thấy cho đến nay có vẻ hơi mơ hồ.Thư viện Picasso và Ảnh GridView

Xin cảm ơn,

Theo.

+2

Có Picasso một tải hình ảnh mạnh mẽ và thư viện bộ nhớ đệm dành cho Android. Bạn không cần phải viết tác vụ không đồng bộ để tải xuống hình ảnh, chúng được xử lý bởi thư viện này. cho tôi biết nếu bạn cần thêm thông tin về cách viết nó, tôi có thể chỉ cho bạn cách triển khai trong chế độ xem lưới. –

+0

Cảm ơn bạn đã trả lời. Tôi sẽ thử nó với GridView và nếu tôi có bất kỳ vấn đề tôi sẽ hỏi bạn. – Theo

Trả lời

7

của nó rất đơn giản để sử dụng picasso lib để tải hình ảnh trong 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

Cảm ơn bạn của tôi. Bảo trọng. – Theo

Các vấn đề liên quan