Skip to content

Instantly share code, notes, and snippets.

Show Gist options
  • Star 0 You must be signed in to star a gist
  • Fork 0 You must be signed in to fork a gist
  • Save amendezcabrera/284ac47bca41911b3b95dd5fdb6ef2c5 to your computer and use it in GitHub Desktop.
Save amendezcabrera/284ac47bca41911b3b95dd5fdb6ef2c5 to your computer and use it in GitHub Desktop.
Changes the tint of all the ImageButton sent via parameter
private Rect rect;
public void setImageButtonTintOnTouch(ImageButton... listaImbtn) {
for (ImageButton imbtn : listaImbtn) {
imbtn.setOnTouchListener(new View.OnTouchListener() {
@Override
public boolean onTouch(View v, MotionEvent event) {
if (event.getAction() == MotionEvent.ACTION_DOWN) {
rect = new Rect(v.getLeft(), v.getTop(), v.getRight(), v.getBottom());
((ImageButton) v).setColorFilter(Color.argb(100, 0, 0, 0)); // Can cause ClassCastException
} else if (event.getAction() == MotionEvent.ACTION_UP) {
removeImageButtonTint(v);
} else if (event.getAction() == MotionEvent.ACTION_MOVE) {
if (!rect.contains(v.getLeft() + (int) event.getX(), v.getTop() + (int) event.getY())) {
removeImageButtonTint(v);
}
}
return false;
}
});
}
}
private void removeImageButtonTint(View v) {
((ImageButton) v).setColorFilter(0); // Can cause ClassCastException
}
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment