**##############################****Picasso****###############****
**
Picasso是一加非常有名的公司square的产品,是开源的
android
的图形的缓存库,
Picasso结局了我们安卓图片加载中许多非常棘手的问题,比如图片的异步加载,缓存机制,OOM异常,他的特点就是简单:
1:在例如
listView
的数据设置的过程中我们对于
adpater
不在试图范围内的
ImageView
资源的加载,因为可能会产生数据加载错位的情况。
2:使用负载的内存转换技术降低了内存的使用。
3:自带两级缓存机制。
举一个我们平时安卓中使用图片时的场景:后置500
万摄像头或者
1300
万摄像头拍出来的照片(
2592*1936
),加载到内存中大概需要
19M
的内存大小,如果你要把这么一张大小的图片做显示并且要做缓存,你自己可以想象一下。。。。。这时候
picasso
的使用就可以了。
Picasso的使用方式:
使用依赖的方式使用:
compile 'com.squareup.picasso:picasso:2.5.2'
加入混淆代码:
-dontwarn com.squareup.okhttp.**
从网络加载图片
**ImageView targetImageView = (ImageView) findViewById(R.id.imageView);****
**
**String internetUrl = "http://www.jycoder.com/json/Image/1.jpg";****
**
**Picasso.with(context)****
**
** ****.load(internetUrl)****
**
**.into(targetImageView);****
**
从Android Resources 中加载
**ImageView targetImageView = (ImageView) findViewById(R.id.imageView);****
**
**int resourceId = R.mipmap.ic_launcher;****
**
**
**
**Picasso****
**
** .with(context)****
**
** .load(resourceId)****
**
** .into(targetImageView);****
**
从File文件中加载:
**ImageView targetImageView = (ImageView) findViewById(R.id.imageView);****
**
**File file = new File(Environment.getExternalStoragePublicDirectory(Environment.DIRECTORY_PICTURES), "Running.jpg");****
**
**
**
**Picasso****
**
** .with(context)****
**
** .load(file)****
**
**.into(targetImageView); ****
**
从URI地址中加载:
**public static final String ANDROID_RESOURCE = "android.resource://";****
**
**public static final String FOREWARD_SLASH = "/";****
**
**private static Uri resourceIdToUri(Context context, int resourceId) {****
**
** return Uri.parse(ANDROID_RESOURCE + context.getPackageName() + FOREWARD_SLASH + resourceId);****
**
**}****
**
**Uri uri = resourceIdToUri(context, R.mipmap.future_studio_launcher);****
**
ImageView targetImageView = (ImageView) findViewById(R.id.imageView);****
**
Picasso ****
**
** .with(context)****
**
** .load(uri)****
**
.into(targetImageView);****
**
注意:picasso这里就先简单讲一下 后面会和Glide****做详细的比较****
**
**
**
**
**
**
**
########################Picasso-transformations##########****
**
推特提供的一个针对Picasso特效动画库:****
**
下载地址:https://github.com/wasabeef/picasso-transformations#how-do-i-use-it****
**
How do I use it?****
**
Step 1****
**
Gradle****
**
repositories {
jcenter()
}
dependencies {
compile 'jp.wasabeef:picasso-transformations:2.1.0'
// If you want to use the GPU Filters
compile 'jp.co.cyberagent.android.gpuimage:gpuimage-library:1.4.1'
}
**Step 2****
**
Set Picasso Transform.
Picasso.with(mContext).load(R.drawable.demo)
.transform(transformation).into((ImageView) findViewById(R.id.image));
**Advanced Step 3****
**
You can set a multiple transformations.
Picasso.with(mContext).load(R.drawable.demo)
.transform(transformation)
.transform(new CropCircleTransformation())
.into(holder.image);
Transformations****
**
Crop****
**
CropTransformation, CropCircleTransformation, CropSquareTransformation, RoundedCornersTransformation
**Color****
**
ColorFilterTransformation, GrayscaleTransformation
**Blur****
**
BlurTransformation
**Mask****
**
MaskTransformation
**GPU Filter (use GPUImage)****
**
Will require add dependencies for GPUImage.
ToonFilterTransformation, SepiaFilterTransformation, ContrastFilterTransformation InvertFilterTransformation, PixelationFilterTransformation, SketchFilterTransformation SwirlFilterTransformation, BrightnessFilterTransformation, KuwaharaFilterTransformation VignetteFilterTransformation**
**