package com.github.captain_miao.agera.tutorial.helper; import android.databinding.BindingAdapter; import android.graphics.Bitmap; import android.graphics.drawable.Drawable; import android.widget.ImageView; import com.github.captain_miao.agera.tutorial.R; import com.squareup.picasso.MemoryPolicy; import com.squareup.picasso.Picasso; /** * @author YanLu * @since 16/4/25 */ public class PicassoBinding { private static final String TAG = "PicassoBinding"; @BindingAdapter({"imageUrl"}) public static void imageLoader(ImageView imageView, String url) { // Picasso.Builder builder = new Picasso.Builder(imageView.getContext()); // builder.listener(new Picasso.Listener() { // @Override // public void onImageLoadFailed(Picasso picasso, Uri uri, Exception exception) { // exception.printStackTrace(); // Log.e("Picasso Error", uri.toString()); // } // }); // builder.build().load(url).into(imageView); Picasso.with(imageView.getContext()).load(url).into(imageView); } @BindingAdapter({"imageUrl", "error"}) public static void imageLoader(ImageView imageView, String url, Drawable error) { // Picasso.Builder builder = new Picasso.Builder(imageView.getContext()); // builder.listener(new Picasso.Listener() { // @Override // public void onImageLoadFailed(Picasso picasso, Uri uri, Exception exception) { // exception.printStackTrace(); // Log.e("Picasso Error", uri.toString()); // } // }); // builder.build() // .load(url) // .error(error) // .into(imageView); Picasso.with(imageView.getContext()).load(url).error(error).into(imageView); } @BindingAdapter({"compressImageUrl"}) public static void loadImageCompress(ImageView imageView, String url) { //large -> b middle // Picasso.Builder builder = new Picasso.Builder(imageView.getContext().getApplicationContext()); // builder.listener(new Picasso.Listener() { // @Override // public void onImageLoadFailed(Picasso picasso, Uri uri, Exception exception) { // exception.printStackTrace(); // Log.e("Picasso Error", uri.toString()); // } // }); //recycle bitmap // Drawable drawable = imageView.getDrawable(); // if (drawable instanceof BitmapDrawable) { // imageView.setImageDrawable(null); // Bitmap bitmap = ((BitmapDrawable) drawable).getBitmap(); // Log.d(TAG, "recycle bitmap, w:" + bitmap.getWidth() + ", h:" + bitmap.getHeight()); // bitmap.recycle(); // } Picasso.with(imageView.getContext().getApplicationContext()) .load(url) .memoryPolicy(MemoryPolicy.NO_CACHE, MemoryPolicy.NO_STORE) .placeholder(R.drawable.ic_image_load_place_holder) .config(Bitmap.Config.RGB_565) .tag(PicassoOnScrollListener.TAG) .into(imageView); } @BindingAdapter({"android:src"}) public static void setImageViewResource(ImageView imageView, int resource) { imageView.setImageResource(resource); } @BindingAdapter("{imageBitmap}") public static void setImageViewBitmap(ImageView iv, Bitmap bitmap) { iv.setImageBitmap(bitmap); } // @BindingAdapter({"imageUrl", "error", "android:clickable"}) // public static void imageLoader(ImageView imageView, String url, Drawable error, boolean clickable) { // Picasso.Builder builder = new Picasso.Builder(imageView.getContext()); // builder.listener(new Picasso.Listener() { // @Override // public void onImageLoadFailed(Picasso picasso, Uri uri, Exception exception) { // exception.printStackTrace(); // Log.e("Picasso Error", uri.toString()); // } // }); // builder.build() // .load(url) // .error(error) // .into(imageView); // Log.d(TAG, "android:clickable = " + clickable); // //// Picasso.with(imageView.getContext()).load(url).error(error).into(imageView); // } }