• Android的GridView控件点击图片变暗效果


    @Override
    public void onCreate(Bundle savedInstanceState) {
        super.onCreate(savedInstanceState);
        setContentView(R.layout.activity_main);
        grid = (GridView) findViewById(R.id.grid);
        grid.setAdapter(new GridAdapter());
        grid.setOnItemClickListener(new OnItemClickListener() {
            @Override
            public void onItemClick(AdapterView<?> arg0, View arg1, int arg2,
                    long arg3) {
                Toast.makeText(MainActivity.this, "ddd", 1000).show();
            }
        });
    }
    
    class GridAdapter extends BaseAdapter {
    
        @Override
        public int getCount() {
            return imgs.length;
        }
    
        @Override
        public Object getItem(int arg0) {
            return arg0;
        }
    
        @Override
        public long getItemId(int arg0) {
            return arg0;
        }
    
        @Override
        public View getView(int arg0, View view, ViewGroup arg2) {
            if (view == null) {
                holder = new ViewHolder();
                view = LayoutInflater.from(MainActivity.this).inflate(
                        R.layout.imgs, null);
                holder.view = (ImageView) view.findViewById(R.id.gridimg);
                view.setTag(holder);
            } else {
                holder = (ViewHolder) view.getTag();
            }
            holder.view.setImageResource(imgs[arg0]);
            holder.view.setOnTouchListener(onTouchListener);
            return view;
        }
    
        class ViewHolder {
            ImageView view;
        }
    
        public OnTouchListener onTouchListener = new View.OnTouchListener() {
            @Override
            public boolean onTouch(View view, MotionEvent event) {
                switch (event.getAction()) {
                case MotionEvent.ACTION_UP:
                    changeLight((ImageView) view, 0);
                    // onclick
                    break;
                case MotionEvent.ACTION_DOWN:
                    changeLight((ImageView) view, -80);
                    break;
                case MotionEvent.ACTION_MOVE:
                    // changeLight(view, 0);
                    break;
                case MotionEvent.ACTION_CANCEL:
                    changeLight((ImageView) view, 0);
                    break;
                default:
                    break;
                }
                return true;
            }
    
        };
    }
    
    private void changeLight(ImageView imageview, int brightness) {
        ColorMatrix matrix = new ColorMatrix();
        matrix.set(new float[] { 1, 0, 0, 0, brightness, 0, 1, 0, 0,
                brightness, 0, 0, 1, 0, brightness, 0, 0, 0, 1, 0 });
        imageview.setColorFilter(new ColorMatrixColorFilter(matrix));
    
    }
  • 相关阅读:
    【BZOJ1089】[SCOI2003]严格n元树(高精度,动态规划)
    【BZOJ1083】[SCOI2005]繁忙的都市(最小生成树)
    【BZOJ1082】[SCOI2005]栅栏(搜索)
    【BZOJ1081】[SCOI2005]超级格雷码(搜索)
    【BZOJ1078】[SCOI2008]斜堆(性质题)
    【BZOJ1077】天平(差分约束)
    【BZOJ1071】[SCOI2007]组队(神仙题)
    【BZOJ1862】[ZJOI2006]游戏排名系统 (Splay)
    【BZOJ1056】[HAOI2008]排名系统(Splay)
    【BZOJ1055】[HAOI2008]玩具取名(动态规划)
  • 原文地址:https://www.cnblogs.com/tuyile006/p/4331826.html
Copyright © 2020-2023  润新知