• 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));
    
    }
  • 相关阅读:
    MySQL数据库优化的八种方式(经典必看)
    HTML5之应用缓存---manifest---缓存使用----HTML5的manifest缓存
    ajax方法总结
    十分钟入门less(翻译自:Learn lESS in 10 Minutes(or less))
    MySQL主从复制技术(纯干货)
    table不能遗露了tbody
    DOM 之selection
    DOM 其他一些特性
    CSSOM视图模式
    DOM 节点实例操作
  • 原文地址:https://www.cnblogs.com/tuyile006/p/4331826.html
Copyright © 2020-2023  润新知