查看: 505|回复: 0

[Android教程] ImageView点击可变暗的实例代码(android代码技巧)

发表于 2017-8-6 08:53:41

废话不多说了,直接给大家贴代码了,具体代码如下所示:

  1. import android.content.Context;
  2. import android.graphics.ColorMatrixColorFilter;
  3. import android.util.AttributeSet;
  4. import android.view.MotionEvent;
  5. import android.view.View;
  6. import android.widget.ImageView;
  7. public class MyImageView extends ImageView{
  8. public MyImageView(Context context, AttributeSet attrs) {
  9. super(context, attrs);
  10. // TODO Auto-generated constructor stub
  11. this.setOnTouchListener(VIEW_TOUCH_DARK);
  12. }
  13. public static final OnTouchListener VIEW_TOUCH_DARK = new OnTouchListener() {
  14. //变暗(三个-50,值越大则效果越深)
  15. public final float[] BT_SELECTED_DARK = new float[] { 1, 0, 0, 0, -50, 0, 1,
  16. 0, 0, -50, 0, 0, 1, 0, -50, 0, 0, 0, 1, 0 };
  17. /*
  18. //变亮
  19. public final float[] BT_SELECTED_LIGHT = new float[] { 1, 0, 0, 0, 50, 0, 1,
  20. 0, 0, 50, 0, 0, 1, 0, 50, 0, 0, 0, 1, 0 };
  21. //恢复
  22. public final float[] BT_NOT_SELECTED = new float[] { 1, 0, 0, 0, 0, 0,
  23. 1, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0, 1, 0 };
  24. */
  25. @Override
  26. public boolean onTouch(View v, MotionEvent event) {
  27. if (event.getAction() == MotionEvent.ACTION_DOWN) {
  28. ImageView iv = (ImageView) v;
  29. iv.setColorFilter(new ColorMatrixColorFilter(BT_SELECTED_DARK));
  30. } else if (event.getAction() == MotionEvent.ACTION_UP) {
  31. ImageView iv = (ImageView) v;
  32. iv.clearColorFilter();
  33. }
  34. return false; //如为false,执行ACTION_DOWN后不再往下执行
  35. }
  36. };
  37. }
复制代码

以上所述是小编给大家介绍的ImageView点击可变暗的实例代码(android代码技巧),希望对大家有所帮助,如果大家有任何疑问请给我留言,小编会及时回复大家的。在此也非常感谢大家对程序员之家网站的支持!



回复

使用道具 举报