Picasso的使用
来源:互联网 发布:网络理财可靠吗 编辑:程序博客网 时间:2024/06/05 18:13
MainActivity:package demo.lxiangjian.com.picasso;import android.os.Environment;import android.support.v7.app.AppCompatActivity;import android.os.Bundle;import android.support.v7.widget.LinearLayoutManager;import android.support.v7.widget.RecyclerView;import java.io.File;import java.util.Arrays;import it.sephiroth.android.library.picasso.OkHttpDownloader;import it.sephiroth.android.library.picasso.Picasso;/** * 内部存储 应用卸载,内部存储也会销毁 ,便于维护 * 外部存储 存储空间大,不会随着应用卸载应用卸载消失 */public class MainActivity extends AppCompatActivity { private RecyclerView mRecyclerView; private RecycAdapter mRecycAdapter; @Override protected void onCreate(Bundle savedInstanceState) { super.onCreate(savedInstanceState); setContentView(R.layout.activity_main); mRecyclerView = (RecyclerView) findViewById(R.id.recy); //自定义缓存路径 //Picasso 并没有直接提供一个设置缓存路径的方法 // //自定义缓存路径 String filePath = Environment.getExternalStorageDirectory().getPath()+"/picasso"; //下载器 //实例化一个新的下载器,为下载设置文件保存枯井,达到自定义缓存路径的目的 Picasso build =new Picasso.Builder(this).downloader(new OkHttpDownloader(new File(filePath))).build(); Picasso.setSingletonInstance(build); mRecycAdapter = new RecycAdapter(); mRecycAdapter.setUrl(Arrays.asList(Consts.mStrings)); mRecyclerView.setAdapter(mRecycAdapter); LinearLayoutManager layout = new LinearLayoutManager(this); mRecyclerView.setLayoutManager(layout); mRecyclerView.addOnScrollListener(new RecyclerView.OnScrollListener() { /** * One of {@link #SCROLL_STATE_IDLE}, 停止滑动,静止 * {@link #SCROLL_STATE_DRAGGING} 手指不离开屏幕的滑动 * {@link #SCROLL_STATE_SETTLING}. 手指离开屏幕惯性滑动 * @param recyclerView * @param newState */ //滑动状态改变 @Override public void onScrollStateChanged(RecyclerView recyclerView, int newState) { super.onScrollStateChanged(recyclerView, newState); //停止滑动,开始加载图片 if (newState == RecyclerView.SCROLL_STATE_IDLE){ Picasso.with(MainActivity.this).resumeTag(this); }else { //暂停图片加载 Picasso.with(MainActivity.this).resumeTag(this); } } @Override public void onScrolled(RecyclerView recyclerView, int dx, int dy) { super.onScrolled(recyclerView, dx, dy); } }); }}MyViewHolder:<pre name="code" class="java">package demo.lxiangjian.com.picasso;import android.support.v7.widget.RecyclerView;import android.view.View;import android.widget.ImageView;/** * Created by Administrator on 2016/6/5. */public class MyViewHolder extends RecyclerView.ViewHolder { public ImageView mImageView; public MyViewHolder(View itemView) { super(itemView); mImageView = (ImageView) itemView.findViewById(R.id.imgView); }}RecycAdapter:
package demo.lxiangjian.com.picasso;import android.content.Context;import android.support.v7.widget.RecyclerView;import android.view.View;import android.view.ViewGroup;import java.util.List;import it.sephiroth.android.library.picasso.Picasso;/** * Created by Administrator on 2016/6/5. */public class RecycAdapter extends RecyclerView.Adapter<MyViewHolder> { private Context mContext; private List<String> mUrl; public void setUrl(List<String> url) { mUrl = url; } @Override public MyViewHolder onCreateViewHolder(ViewGroup parent, int viewType) { mContext =parent.getContext(); View view = View.inflate(mContext,R.layout.recyclerview_mb,null); MyViewHolder myViewHolder = new MyViewHolder(view); return myViewHolder; } @Override public void onBindViewHolder(MyViewHolder holder, int position) { Picasso.with(mContext).load(mUrl.get(position)).resize(300,300).into(holder.mImageView); } @Override public int getItemCount() { return mUrl.size(); }}
activity_main.xml:<?xml version="1.0" encoding="utf-8"?><RelativeLayout xmlns:android="http://schemas.android.com/apk/res/android" android:layout_width="match_parent" android:layout_height="match_parent"> <android.support.v7.widget.RecyclerView android:id="@+id/recy" android:layout_width="match_parent" android:layout_height="match_parent" /></RelativeLayout>
item_recy.xml:<?xml version="1.0" encoding="utf-8"?><LinearLayout xmlns:android="http://schemas.android.com/apk/res/android" android:orientation="vertical" android:layout_width="match_parent" android:layout_height="match_parent"> <ImageView android:id="@+id/imgView" android:layout_width="wrap_content" android:layout_height="wrap_content"/></LinearLayout>
记得导包:
compile 'it.sephiroth.android.library.picasso:picasso:2.5.2.4b' compile 'com.squareup.okhttp3:okhttp:3.3.1' compile 'com.android.support:recyclerview-v7:24.0.0-alpha2'
权限:
<uses-permission android:name="android.permission.INTERNET"/> <uses-permission android:name="android.permission.WRITE_EXTERNAL_STORAGE"/>
0 0
- picasso框架的使用
- Picasso的使用
- picasso的使用
- Picasso框架的使用
- Picasso的使用
- Picasso的使用
- Picasso的使用
- Picasso的基本使用
- Picasso的使用
- Picasso的使用
- Picasso框架的使用
- Picasso的基本使用
- Picasso框架的使用
- Picasso的使用总结
- Picasso的详细使用
- Picasso的使用
- Picasso的使用
- Picasso的简单使用
- jQuery效果
- 配置log4j日志动态加载(不重启服务)
- Oracle中union和union all的区别
- 二、Lambda表达式
- 数据结构_9:位算法
- Picasso的使用
- Hirschberg's algorithm to find string alignment
- Python 基础之字符串(不可变数据类型)
- (loadrunner 三)脚本录制之关联&cookie
- 5.1 前馈神经网络
- Laravel 5.2 session失效不起作用(无法将Session存入Redis中)的解决方案
- JSF1063:警告!将不可序列化属性值设置为 HttpSession(密钥:{0},值类:{1})。
- C/C++中的位运算
- MFC 之工具栏设计