Android Picasso的简单使用

来源:互联网 发布:tps跨境电商是网络传销 编辑:程序博客网 时间:2024/06/04 01:20
MainActivity:package demo.lxiangjian.com.picassodemo02;import android.graphics.Bitmap;import android.support.v7.app.AppCompatActivity;import android.os.Bundle;import android.view.View;import android.widget.Button;import android.widget.Toast;import com.squareup.picasso.Callback;import com.squareup.picasso.MemoryPolicy;import com.squareup.picasso.Picasso;public class MainActivity extends AppCompatActivity implements View.OnClickListener{    private CostomImageView mImageView;    private Button mButton1,mButton2;    @Override    protected void onCreate(Bundle savedInstanceState) {        super.onCreate(savedInstanceState);        setContentView(R.layout.activity_main);        mButton1 = (Button) findViewById(R.id.button1);        mButton2 = (Button) findViewById(R.id.button2);        mImageView = (CostomImageView) findViewById(R.id.img);        mButton1.setOnClickListener(this);        mButton2.setOnClickListener(this);        //默认的缓存路径是data/data/包名/picassocache        //load方法参数支持  Uri  String  File   resourceId        //        //即使传入的是activity的上下文,但是最终他使用的还是applicationContext        Picasso.with(this).load(Consts.IMG_URL).                error(R.mipmap.ic_launcher)  //加载图片失败显示的图片,可以资源id,也可以是drwable                .config(Bitmap.Config.RGB_565)//默认是Bitmap.Config.ARGB_8888,配置成RGB_565舍弃透明度,减少内存占用                .placeholder(R.mipmap.ic_launcher)//占位图片,资源iD,也可以是drwable        //.resize(300, 400)//参数:with,height,不仅图片进行大小裁剪 也减少内存占用        //.centerCrop()//使用这个方法之前必须调用resize裁剪方法        // .rotate(20)  //旋转//                .fetch();                        //fetch 预加载,把图片加入磁盘和内存缓存,但是并不进行图片显示                        //内存策略                        //MemoryPolicy.NO_CACHE, MemoryPolicy.NO_STORE 去除内存缓存                        //在处理大图片的时候有时候需要放弃内存缓存                        //MemoryPolicy.NO_STORE不放入内存,MemoryPolicy.NO_CACHE不从内存中去查找                .memoryPolicy(MemoryPolicy.NO_CACHE, MemoryPolicy.NO_STORE)                .into(mImageView, new Callback() {                    //图片记载成功                    @Override                    public void onSuccess() {                        Toast.makeText(MainActivity.this, "成功", Toast.LENGTH_SHORT).show();                    }                    //图片加载失败                    @Override                    public void onError() {                        //设置比如点击重新加载                        Toast.makeText(MainActivity.this, "失败", Toast.LENGTH_SHORT).show();                    }                });    }    @Override    public void onClick(View v) {        switch (v.getId()) {            case R.id.button1:                Picasso.with(this).load(Consts.IMG_URL2).fetch(new Callback() {                    @Override                    public void onSuccess() {                        Toast.makeText(MainActivity.this, "预加载成功", Toast.LENGTH_SHORT).show();                    }                    @Override                    public void onError() {                        Toast.makeText(MainActivity.this, "预加载失败", Toast.LENGTH_SHORT).show();                    }                });                break;            case R.id.button2:                Picasso.with(this).load(Consts.IMG_URL2).into(mImageView);                break;        }    }}

自定义imageView:

package demo.lxiangjian.com.picassodemo02;import android.content.Context;import android.util.AttributeSet;import android.widget.ImageView;/** * Created by Administrator on 2016/6/5. */public class CostomImageView extends ImageView {    //动态生成图片,new    public CostomImageView(Context context) {        super(context);    }    // xml中静态生成    public CostomImageView(Context context, AttributeSet attrs) {        super(context, attrs);    }}

package demo.lxiangjian.com.picassodemo02;/** * Created by dupengfei on 16/6/1. */public class Consts {    public static final String IMG_URL = "http://dl.bizhi.sogou.com/images/2012/03/23/107607.jpg?f=download";    public static final String IMG_URL2 = "http://www.rmzt.com/uploads/allimg/151014/1-151014164149411.jpg";}

activity_main.xml:

<?xml version="1.0" encoding="utf-8"?><LinearLayout    xmlns:android="http://schemas.android.com/apk/res/android"    android:layout_width="match_parent"    android:layout_height="match_parent"    android:orientation="vertical">    <Button        android:id="@+id/button1"        android:layout_width="wrap_content"        android:layout_height="wrap_content"        android:text="fetch"/>    <Button        android:id="@+id/button2"        android:layout_width="wrap_content"        android:layout_height="wrap_content"        android:text="display"/>    <demo.lxiangjian.com.picassodemo02.CostomImageView        android:id="@+id/img"        android:layout_width="wrap_content"        android:layout_height="wrap_content"/></LinearLayout><?xml version="1.0" encoding="utf-8"?><LinearLayout    xmlns:android="http://schemas.android.com/apk/res/android"    android:layout_width="match_parent"    android:layout_height="match_parent"    android:orientation="vertical">    <Button        android:id="@+id/button1"        android:layout_width="wrap_content"        android:layout_height="wrap_content"        android:text="fetch"/>    <Button        android:id="@+id/button2"        android:layout_width="wrap_content"        android:layout_height="wrap_content"        android:text="display"/>    <demo.lxiangjian.com.picassodemo02.CostomImageView        android:id="@+id/img"        android:layout_width="wrap_content"        android:layout_height="wrap_content"/></LinearLayout>

权限:

<uses-permission android:name="android.permission.INTERNET"/>    <uses-permission android:name="android.permission.WRITE_EXTERNAL_STORAGE"/>


dependencies {    compile fileTree(include: ['*.jar'], dir: 'libs')    testCompile 'junit:junit:4.12'    compile 'com.android.support:appcompat-v7:23.4.0'    compile 'com.squareup.picasso:picasso:2.5.2'    compile 'com.android.support:support-v4:24.0.0-alpha2'}



1 0
原创粉丝点击