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
- Android Picasso的简单使用
- Picasso的简单使用
- Android Picasso的基本使用
- Android Picasso的基本使用
- Picasso的简单介绍和使用
- 图片框架Picasso的简单使用
- Picasso图片加载器的简单使用
- Picasso图片加载器的简单使用
- Picasso的简单使用及封装
- Picasso-简单使用
- Picasso 简单使用
- Android框架Picasso的使用简介
- Android Picasso图片缓存框架的使用
- Android图形缓存库Picasso的使用
- picasso的简单用法
- Picasso的简单实用
- Picasso的简单实用
- Android 之 Picasso使用
- MFC 之工具栏设计
- JSF使用注解的时候
- win7左侧任务栏变得更窄的方法
- 【杭电】[1302]The Snail
- LeetCode 47 Permutations II
- Android Picasso的简单使用
- R语言-代码规范(Google's R Style Guide)
- LeetCode--No.206--Reverse Linked List
- 5.2 网络训练
- x64通过PspCidTable遍历进程
- Ubuntu 安装开源微信(源码安装+release快速安装)
- 第13课:Spark Streaming源码解读之Driver容错安全性
- oracle错误代码大全
- Number of Islands, variation