Android的GridView点击图片变暗效果

  1. @Override  

  2. public void onCreate(Bundle savedInstanceState) {  

  3.     super.onCreate(savedInstanceState);  

  4.     setContentView(R.layout.activity_main);  

  5.     grid = (GridView) findViewById(R.id.grid);  

  6.     grid.setAdapter(new GridAdapter());  

  7.     grid.setOnItemClickListener(new OnItemClickListener() {  

  8.         @Override  

  9.         public void onItemClick(AdapterView<?> arg0, View arg1, int arg2,  

  10.                 long arg3) {  

  11.             Toast.makeText(MainActivity.this"ddd"1000).show();  

  12.         }  

  13.     });  

  14. }  

  15.   

  16. class GridAdapter extends BaseAdapter {  

  17.   

  18.     @Override  

  19.     public int getCount() {  

  20.         return imgs.length;  

  21.     }  

  22.   

  23.     @Override  

  24.     public Object getItem(int arg0) {  

  25.         return arg0;  

  26.     }  

  27.   

  28.     @Override  

  29.     public long getItemId(int arg0) {  

  30.         return arg0;  

  31.     }  

  32.   

  33.     @Override  

  34.     public View getView(int arg0, View view, ViewGroup arg2) {  

  35.         if (view == null) {  

  36.             holder = new ViewHolder();  

  37.             view = LayoutInflater.from(MainActivity.this).inflate(  

  38.                     R.layout.imgs, null);  

  39.             holder.view = (ImageView) view.findViewById(R.id.gridimg);  

  40.             view.setTag(holder);  

  41.         } else {  

  42.             holder = (ViewHolder) view.getTag();  

  43.         }  

  44.         holder.view.setImageResource(imgs[arg0]);  

  45.         holder.view.setOnTouchListener(onTouchListener);  

  46.         return view;  

  47.     }  

  48.   

  49.     class ViewHolder {  

  50.         ImageView view;  

  51.     }  

  52.   

  53.     public OnTouchListener onTouchListener = new View.OnTouchListener() {  

  54.         @Override  

  55.         public boolean onTouch(View view, MotionEvent event) {  

  56.             switch (event.getAction()) {  

  57.             case MotionEvent.ACTION_UP:  

  58.                 changeLight((ImageView) view, 0);  

  59.                 // onclick  

  60.                 break;  

  61.             case MotionEvent.ACTION_DOWN:  

  62.                 changeLight((ImageView) view, -80);  

  63.                 break;  

  64.             case MotionEvent.ACTION_MOVE:  

  65.                 // changeLight(view, 0);  

  66.                 break;  

  67.             case MotionEvent.ACTION_CANCEL:  

  68.                 changeLight((ImageView) view, 0);  

  69.                 break;  

  70.             default:  

  71.                 break;  

  72.             }  

  73.             return true;  

  74.         }  

  75.   

  76.     };  

  77. }  

  78.   

  79. private void changeLight(ImageView imageview, int brightness) {  

  80.     ColorMatrix matrix = new ColorMatrix();  

  81.     matrix.set(new float[] { 1000, brightness, 0100,  

  82.             brightness, 0010, brightness, 00010 });  

  83.     imageview.setColorFilter(new ColorMatrixColorFilter(matrix));  

  84.   

  85. }  


转载于:https://my.oschina.net/u/1786307/blog/527810

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值