AndroidフレームのPicassoとGlideの使用と違い
3772 ワード
Picasso Gilde
1.1行はImageView Picasso.withを表示します。ロード("http://i.imgur.com/DvpvklR.png「)into(imagew);Many common pitfalls ofイメージloading on Android are handed atomaticaally by Picasso:
-Handling ImageView recycling and download cancelation in an adapter.
-Complex image transformations with minimal memory use.
-Automatic memory and disk caching.
2.異なる位置のリソースをロードするPicasso.with(context).load(R.drawable.landing_screen).into(imageView1);
Picasso.with(context).load("file:///android_asset/DvpvklR.png").into(imageView2);
Picasso.with(context).load(new File(...)).into(imageView3);
, resize :
Picasso.with(this).load("http://n.sinaimg.cn/translate/20160819/9BpA-fxvcsrn8627957.jpg")
.resize(200,200)
.into(iv);
200 200px, resize dp, :
Picasso.with(this).load("http://n.sinaimg.cn/translate/20160819/9BpA-fxvcsrn8627957.jpg")
.resizeDimen(R.dimen.iv_width,R.dimen.iv_height)
.into(iv);
3.カスタムPicassoPicasso picasso = new Picasso.Build(Context).build();
.memoryCache(new LruCache(10*1024*1024)).defaultBitmapConfig(Bitmap.Config.RGB_565)
.downloader(new OkHttpDownloader(Environment.getExternalStoragePublicDirectory(Environment.DIRECTORY_PICTURES),10*1024*1024))
.indicatorsEnabled(true) // , !
4.Picasso常用属性config(Bitmap.Config.RGB_565)//
.memoryPolicy(MemoryPolicy.NO_CACHE,MemoryPolicy.NO_STORE) //
.resize(100,100) .centerInside().placeholder(R.mipmap.ic_launcher).error(R.mipmap.ic_launcher).rotate(40).
transform(new Transformation() {
@Override
//public Bitmap transform(/tmap source){/int max=Math.min(source.getHeight()、//Bitmap bitmap=Bitmap.creat Bitmap(source,0,max,max)//source.recycle()//return bitmap;//////@Override//public String key()//return“key”//////////})Transformation transformation = new Transformation() {
@Override
public Bitmap transform(Bitmap source) {
int width = source.getWidth();
int height = source.getHeight();
int size = Math.min(width, height);
Bitmap blankBitmap = Bitmap.createBitmap(width, height, Bitmap.Config.ARGB_8888);
Canvas canvas = new Canvas(blankBitmap);
Paint paint = new Paint();
paint.setAntiAlias(true);
canvas.drawCircle(size / 2, size / 2, size / 2, paint);
paint.setXfermode(new PorterDuffXfermode(PorterDuff.Mode.SRC_IN));
canvas.drawBitmap(source, 0, 0, paint);
if (source != null && !source.isRecycled()) {
source.recycle();
}
return blankBitmap;
}
@Override
public String key() {
return "squareup";
}
};
Picasso , Picasson !!!
downloader(new OkHttpDownloader(Environment.getExternalStoragePublicDirectory(Environment.DIRECTORY_PICTURES),10*1024*1024))
Picasso :
! ! ,
:
Picasso !
1. File cache = new File(context.getApplicationContext().getCacheDir(), PICASSO_CACHE);
2. ARGB 8888
picasso gif
Picasso.with(Context)
Picasso
Picasso picasso = new Picasso.Builder(this)
.defaultBitmapConfig(Bitmap.Config.RGB_565)
.downloader(new OkHttpDownloader(Environment.getExternalStorageDirectory()))
.build();
Glide