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. }  

你可能感兴趣的:(技术)