Android Picasso 擷取遠程圖片並顯示

來源:互聯網
上載者:User

標籤:

 Picasso是Square公司開源的一個Android圖形緩衝庫,地址http://square.github.io/picasso/,可以實現圖片下載和緩衝功能。

它的使用及其的簡單,僅僅只需要一行代碼就能完全實現圖片的非同步載入:

        Picasso.with(view.getContext()).load(newsItems.get(position).getThumb()).into(holder.ivHeader);//Picasso非同步載入預覽圖

完全不需要任何其他動作便可以載入圖片,而且內建緩衝功能,還最佳化了在RecyclerView中的圖片重複利用等問題,而且使用了複雜的圖片壓縮演算法來減少記憶體消耗以及內建二級緩衝

下面是博主在Adapter中寫的範例:

 1 package socialnews.linccy.com.socialnews.adapter; 2  3 import android.support.v7.widget.RecyclerView; 4 import android.view.LayoutInflater; 5 import android.view.View; 6 import android.view.ViewGroup; 7 import android.widget.ImageView; 8 import android.widget.TextView; 9 10 import com.squareup.picasso.Picasso;11 12 import java.util.List;13 14 import butterknife.BindView;15 import butterknife.ButterKnife;16 import socialnews.linccy.com.socialnews.utils.NewsItem;17 import socialnews.linccy.com.socialnews.R;18 19 /**20  * Created by Lcc on 2016/7/9.21  */22 23 public class NewsItemAdapter extends RecyclerView.Adapter<NewsItemAdapter.ViewHolder> {24 25     private static List<NewsItem> newsItems;26     private View view;27 28     public NewsItemAdapter(List<NewsItem> newsItems) {29         this.newsItems = newsItems;30     }31 32     @Override33     public ViewHolder onCreateViewHolder(ViewGroup parent, int viewType) {34         view = LayoutInflater.from(parent.getContext()).inflate(R.layout.recyclerview_cardview_item, parent, false);35         ViewHolder holder = new ViewHolder(view);36         return holder;37     }38 39     @Override40     public void onBindViewHolder(ViewHolder holder, int position) {41         holder.tvTitle.setText(newsItems.get(position).getTitle());42         holder.tvDetail.setText(newsItems.get(position).getDescr());43         holder.tvTime.setText(newsItems.get(position).getTime());44         Picasso.with(view.getContext()).load(newsItems.get(position).getThumb()).into(holder.ivHeader);//Picasso非同步載入預覽圖45     }46 47     @Override48     public int getItemCount() {49         return newsItems.size();50     }51 52 53     public class ViewHolder extends RecyclerView.ViewHolder {54         @BindView(R.id.iv_header)55         ImageView ivHeader;56 57         @BindView(R.id.tv_title)58         TextView tvTitle;59         @BindView(R.id.tv_detail)60         TextView tvDetail;61         @BindView(R.id.tv_time)62         TextView tvTime;63 64         public ViewHolder(View itemView) {65             super(itemView);66             ButterKnife.bind(this, itemView);67         }68     }69 }

 

 

Android Picasso 擷取遠程圖片並顯示

聯繫我們

該頁面正文內容均來源於網絡整理,並不代表阿里雲官方的觀點,該頁面所提到的產品和服務也與阿里云無關,如果該頁面內容對您造成了困擾,歡迎寫郵件給我們,收到郵件我們將在5個工作日內處理。

如果您發現本社區中有涉嫌抄襲的內容,歡迎發送郵件至: info-contact@alibabacloud.com 進行舉報並提供相關證據,工作人員會在 5 個工作天內聯絡您,一經查實,本站將立刻刪除涉嫌侵權內容。

A Free Trial That Lets You Build Big!

Start building with 50+ products and up to 12 months usage for Elastic Compute Service

  • Sales Support

    1 on 1 presale consultation

  • After-Sales Support

    24/7 Technical Support 6 Free Tickets per Quarter Faster Response

  • Alibaba Cloud offers highly flexible support services tailored to meet your exact needs.