一聚教程网:一个值得你收藏的教程网站

最新下载

热门教程

ImageView点击可变暗的实例代码(android代码技巧)

时间:2017-03-16 编辑:简简单单 来源:一聚教程网

 

 代码如下复制代码

importandroid.content.Context;

importandroid.graphics.ColorMatrixColorFilter;

importandroid.util.AttributeSet;

importandroid.view.MotionEvent;

importandroid.view.View;

importandroid.widget.ImageView;

publicclassMyImageViewextendsImageView{

  publicMyImageView(Context context, AttributeSet attrs) {

    super(context, attrs);

    // TODO Auto-generated constructor stub

    this.setOnTouchListener(VIEW_TOUCH_DARK);

  }

  publicstaticfinalOnTouchListener VIEW_TOUCH_DARK =newOnTouchListener() {

    //变暗(三个-50,值越大则效果越深)

    publicfinalfloat[] BT_SELECTED_DARK =newfloat[] {1,0,0,0, -50,0,1,

        0,0, -50,0,0,1,0, -50,0,0,0,1,0};

    /*

    //变亮

    public final float[] BT_SELECTED_LIGHT = new float[] { 1, 0, 0, 0, 50, 0, 1,

        0, 0, 50, 0, 0, 1, 0, 50, 0, 0, 0, 1, 0 };

    //恢复

    public final float[] BT_NOT_SELECTED = new float[] { 1, 0, 0, 0, 0, 0,

        1, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0, 1, 0 };

     */

    @Override

    publicbooleanonTouch(View v, MotionEvent event) {

      if(event.getAction() == MotionEvent.ACTION_DOWN) {

        ImageView iv = (ImageView) v;

        iv.setColorFilter(newColorMatrixColorFilter(BT_SELECTED_DARK));

      }elseif(event.getAction() == MotionEvent.ACTION_UP) {

        ImageView iv = (ImageView) v;

        iv.clearColorFilter();

      }

      returnfalse;//如为false,执行ACTION_DOWN后不再往下执行

    }

  };

}

 

热门栏目