Android Picasso 获取远程图片并显示

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     @Override
33     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     @Override
40     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     @Override
48     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 }

效果图:

时间: 2025-01-14 23:12:31

Android Picasso 获取远程图片并显示的相关文章

php使用curl来获取远程图片

本文章来介绍php使用curl来获取远程图片实现方法,有需要了解采集远程图片的朋友不防进入参考. curl要求php环境支持才行. 可以运行phpinfo()函数是否支持,一般要将php.ini中;extension=php_curl.dll前的;去掉.重新启动IIS或者APACHE就可以了.  代码如下 复制代码 /**@通过curl方式获取指定的图片到本地*@ 完整的图片地址*@ 要存储的文件名*/function getImg($url = "", $filename = &qu

php获取远程图片模拟post,file上传到指定服务器

1.获取远程图片 /** $path保存图片的地址 $url要获取的远程图片地址 **/ function getimg($path,$url){ $aext = explode('.', $url);$ext = end($aext); $name = $path.'/'. time() . '.' . $ext;$source=file_get_contents($url);file_put_contents($name,$source);return $name; } 2.上传图片 /**

PHP获取远程图片

<?php // // Function: 获取远程图片并把它保存到本地 // // // 确定您有把文件写入本地服务器的权限 // // // 变量说明: // $url 是远程图片的完整URL地址,不能为空. // $filename 是可选变量: 如果为空,本地文件名将基于时间和日期 // 自动生成. function GrabImage($url,$filename="") { if($url==""):return false;endif; if($

android获取本地图片并显示图片

import java.io.FileNotFoundException; import android.content.ContentResolver; import android.content.Intent; import android.graphics.Bitmap; import android.graphics.BitmapFactory; import android.net.Uri; import android.os.Bundle; import android.util.

WEB端获取远程图片的尺寸和大小

一直以来我都以为前端只能读取图片的宽度和高度,以及本地上传图片的大小(通过FileReader),但不能获取到远程图片的大小. 昨天在搜索时突然意识到,http headers中包含Content-Length参数,这不就是大小吗?!然后立马在console输入$.get(src, function(data, statusText, res){res.getAllResponseHeaders()}),这不就搞定了嘛! 但是我高兴太早了 把这个放在代码里,愣是不显示Content-Length

获取远程图片保存到本地文件夹中

1 /** 2 * 抓取远程图片到本地,可以抓取不带有后缀的图片 3 * @author YanYing <[email protected]> 4 * @link bidianer.com 5 */ 6 class GrabImage{ 7 8 /** 9 * @var string 需要抓取的远程图片的地址 10 * 例如:http://www.bidianer.com/img/icon_mugs.jpg 11 * 有一些远程文件路径可能不带拓展名 12 * 形如:http://www.x

获取远程图片的Blob资源

原文地址:http://www.cnblogs.com/JimmyBright/p/7681092.html 思路:js获取远程资源的blob会涉及到跨域的问题,所以需要中转一下,具体是使用php的curl获取 1 /** 2 * @desc 转发获取图片防止前端跨域取不到资源 3 * @author Jimmy 4 * @date 2017-10-13 5 */ 6 public function actionGetimage() 7 { 8 header("Content-Type:imag

C# 下载远程图片并显示

/// <summary> /// 下载远程图片 /// </summary> /// <param name="url"></param> /// <returns></returns> private Image GetImage(string url) { try { HttpWebRequest myrequest = WebRequest.Create(url) as HttpWebRequest; Ht

[Android] AlertDialog获取网上天气并显示各城市天气

    最近帮同学做android百度地图,其中涉及到定位城市天气功能.才知道自己技术非常的一般,还有很多东西需要学习,同时需要回归到我研究生的方向--数据挖掘.同时又见识到了一位叫柳峰的大神,推荐大家去看看他的文章,好像他还是贵州的老乡.博文地址:http://blog.csdn.net/lyq8479/ 言归正传,我主要通过两种方法实现: 1.第一种方法是通过调用中国天气网信息实现的,它的思想是通过查询静态数据库中个城市对应的WeatherCode,在通过访问中国天气网获取JSON格式数据显