zoukankan      html  css  js  c++  java
  • 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));
    
    }
  • 相关阅读:
    MVC和MTV模式
    Do a web framework ourselves
    什么是web框架?
    12.1.2 实战演练——编写一个适用于Android系统的网页
    10.4 实战演练
    Genymotion
    Reactive Native开发环境搭建
    第10章 使用WebKit浏览网页数据
    第7章 Android中访问网络资源
    3.4 存储简单数据的利器——Preferences
  • 原文地址:https://www.cnblogs.com/tuyile006/p/4331826.html
Copyright © 2011-2022 走看看