package com.yalantis.ucrop.util;
|
|
import android.graphics.PorterDuff;
|
import android.graphics.drawable.Drawable;
|
import android.graphics.drawable.StateListDrawable;
|
|
/**
|
* Hack class to properly support state drawable back to Android 1.6
|
*/
|
public class SelectedStateListDrawable extends StateListDrawable {
|
|
private int mSelectionColor;
|
|
public SelectedStateListDrawable(Drawable drawable, int selectionColor) {
|
super();
|
this.mSelectionColor = selectionColor;
|
addState(new int[]{android.R.attr.state_selected}, drawable);
|
addState(new int[]{}, drawable);
|
}
|
|
@Override
|
protected boolean onStateChange(int[] states) {
|
boolean isStatePressedInArray = false;
|
for (int state : states) {
|
if (state == android.R.attr.state_selected) {
|
isStatePressedInArray = true;
|
}
|
}
|
if (isStatePressedInArray) {
|
super.setColorFilter(mSelectionColor, PorterDuff.Mode.SRC_ATOP);
|
} else {
|
super.clearColorFilter();
|
}
|
return super.onStateChange(states);
|
}
|
|
@Override
|
public boolean isStateful() {
|
return true;
|
}
|
|
}
|