import com.squareup.picasso.Picasso;
import android.content.Context;
import android.graphics.Color;
import android.graphics.PorterDuff;
import android.graphics.drawable.ColorDrawable;
import android.graphics.drawable.Drawable;
import android.text.TextUtils;
import android.util.AttributeSet;
import android.view.MotionEvent;
import android.widget.ImageView;
/**
*
* @author: guc
* @create_time:2017年4月10日 下午2:10:07
* @类描述:实现点击背景变暗效果;同时使用Picasso加载网络图片
* @version:
*
*/
public class CustomImageView extends ImageView {
private String url;
private boolean isAttachedToWindow;
public CustomImageView(Context context) {
super(context);
}
public CustomImageView(Context context, AttributeSet attrs) {
super(context, attrs);
}
@Override
public boolean onTouchEvent(MotionEvent event) {
switch (event.getAction()) {
case MotionEvent.ACTION_DOWN:
Drawable drawable = getDrawable();
if (drawable != null) {
drawable.mutate().setColorFilter(Color.GRAY,
PorterDuff.Mode.MULTIPLY);
}
break;
case MotionEvent.ACTION_MOVE:
break;
case MotionEvent.ACTION_CANCEL:
case MotionEvent.ACTION_UP:
Drawable drawableUp = getDrawable();
if (drawableUp != null) {
drawableUp.mutate().clearColorFilter();
}
break;
default:
break;
}
return super.onTouchEvent(event);
}
@Override
protected void onAttachedToWindow() {
isAttachedToWindow = true;
setClickable(true);
setImageUrl(url);
super.onAttachedToWindow();
}
@Override
protected void onDetachedFromWindow() {
Picasso.with(getContext()).cancelRequest(this);
isAttachedToWindow = false;
setImageBitmap(null);
super.onDetachedFromWindow();
}
public void setImageUrl(String url) {
if (!TextUtils.isEmpty(url)) {
this.url = url;
if (isAttachedToWindow) {
Picasso.with(getContext())
.load(url)
.placeholder(
new ColorDrawable(Color.parseColor("#f5f5f5")))
.into(this);
}
}
}
}
picasso.jar包下载地址:picasso-2.5.2
最新Picasso.jar包下载地址:http://square.github.io/picasso/