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));

}
时间: 2024-10-12 19:53:09

Android的GridView控件点击图片变暗效果的相关文章

GridView控件点击单元格如何获取该列的列标题

本博文Insus.NET教你实现在GridView控件中,用mouse点击某单元格之后,希望能获取到该列的列标题. 创建一个网页,创建一个GridView控件: 去cs绑定数据给GridView控件: 下面我们需要写注册click事件,以便获取被点击的行或列索引.在网页中override Render()方法,为cell添加attributes “onclick”事件. 现在我们需要为GridView控件添加一个事件,添加一个Label,用来显示所获取的列名.去.aspx的html markup

Android:通过滤镜实现点击图片变暗效果

实现点击图片(ImageView)变暗效果,有一个较简单的方法,就是讲目标图片设置为背景图片(setBackground),再创建一个selector.xml文件,里面放置一张普通状态时的透明图片,一张点击状态下的棕色半透明图片,将其设置为ImageView的源图片.这样在点击ImageView时,源图片会变换透明度,达到变暗效果.但这种方法有个缺点:由于源图片已经被限制死了,假如我们需要自定义背景图片,将目标图片放置在背景图片上,就无法实现了.这里介绍一种通过滤镜和监听onTouchEvent

Android studio 用控件TextView 添加图片

作业:用TextView 添加图片:创建一个按键,按键按下时就切换一张图片,总共有5张图片 1.在资源文件夹中加入图片 2.实现如下代码 public class MainActivity extends AppCompatActivity { TextView tx; Button bt1; int a; ImageSpan span1,span2,span3,span4,span5; @Override protected void onCreate(Bundle savedInstance

Android 自己定义控件实现刮刮卡效果 真的就仅仅是刮刮卡么

转载请标明出处:http://blog.csdn.net/lmj623565791/article/details/40162163 , 本文出自:[张鸿洋的博客] 非常久以前也过一个html5的刮刮卡效果~~上次看到有人写Android的刮刮卡效果~~于是乎产生了本篇博客~~此类样例也比較多了,大家能够百度看看~只是还是通过本样例,带大家发掘一下.里面隐含的知识~ 1.Xfermode以及PorterDuff 假设大家还记得,以前在博客:完美实现图片圆角和圆形 简介过圆角的实现原理也是基于这个

【Android UI】案例04配置控件点击效果(selector)

本例采用XML(selector),配置控件点击效果的实现,即当控件被触发或点击获取到焦点时,出现样式上的改变,以便给以较好的用户体验与操作感.本例需要引入的核心知识点的selector.xml.请参考学习:http://blog.csdn.net/mahoking/article/details/23690857.本例用于演示点击效果的控件为TextView.Button. [转载使用,请注明出处:http://blog.csdn.net/mahoking] 首先需要配置selector.xm

Android控件上添加图片

项目中有一个点赞功能,点赞的小图标添加在点赞列表旁边,在xml里可以进行设置,也可以在代码中进行绘图. 下面是两种方法的设置: 1.xml里:一些控件:button.textView等等里面有个属性是android:drawableLeft 就可以将pic设置到text的左边.good.... 2.代码中: TextView txtlikedList = new TextView(this.getContext()); Drawable drawable= getResources().getD

android 防止对控件的重复点击和同时点击多个控件

引 在一个手机界面中,用户经常会同时点击多个控件,经常会在短时间内对某一个控件点击多下,这样就会造成各种各样的bug. 防止点击多个控件 只要在xml文件中的父容器总加入这样一行代码即可: android:splitMotionEvents="false" 如在下面的LinearLayout中加入这行话,表示每一次只能点击LinearLayout其中的一个元素,点击了其他的元素是无效的. <LinearLayout android:layout_width="match

Android调用相册拍照控件实现系统控件缩放切割图片

android 下如果做处理图片的软件 可以调用系统的控件 实现缩放切割图片 非常好的效果 今天写了一个demo分享给大家 package cn.m15.test; import java.io.ByteArrayOutputStream;import java.io.File;import android.app.Activity;import android.content.Intent;import android.graphics.Bitmap;import android.net.Ur

点击CheckBox让Gridview控件在编辑与正常状态之间切换

昨晚快休息时,还有一位网友咨询Insus.NET,他想在开发时,实现一个小功能,就是想让用户在点击Gridview控件第一列的CheckBox之后,GridView进入编辑状态,取消选中的CheckBox,GridView的当前行回复正常状态.是否能实现.当时Insus.NET有提供示例供其参考: http://www.cnblogs.com/insus/p/3219262.html 今早打开Skype一看,他留言了,说还是做不出来.下面Insus.NET还修改一下上面链接的示例,改为网友的实际