android设置图片不可点击,Android 点击图片设置相关的响应事件

实现相关的接口:

implements View.OnTouchListener

实现相关函数:

public boolean onTouch(View view, MotionEvent motionEvent){}

相关实现坑点:

因为点击事件主要分为三种,拖拉,点击,抬起。点击  对应的事件就是 ACTION_DOWN,抬起 对应的事件就是 ACTION_UP。所以如果你点击一次,抬起一次,相应的就会触发两次 onTouch 事件。如果涉及到拖拉的话,可能就比较复杂了,但是也有对应的事件。【Android 寻找对应得API触发事件即可】

实现demo,实现点击不同相应的位置实现相应的事件处理函数:

相关图片:

bb6f2b73f117db30a90e657584243d30.png

相关实现代码:

// 图片点击位置获取

ImageView IndexChooseImg = (ImageView) view.findViewById(R.id.IndexChooseImg);

IndexChooseImg.setOnTouchListener(this);

//相关绑定事件:

private int actionDown_x = 0 , actionDown_y = 0 , actionUp_x = 0 , actionUp_y = 0;

private boolean actionflag = true;

/**

* 注意返回值

* true:view继续响应Touch操作;

* false:view不再响应Touch操作,故此处若为false,只能显示起始位置,不能显示实时位置和结束位置

*/

@Override

public boolean onTouch(View view, MotionEvent motionEvent) {

actionflag = !actionflag;

switch (motionEvent.getAction()) {

/**

* 点击的开始位置

*/

case MotionEvent.ACTION_DOWN:

actionDown_x = (int)motionEvent.getX();

actionDown_y = (int)motionEvent.getY();

break;

case MotionEvent.ACTION_UP:

actionUp_x = (int)motionEvent.getX();

actionUp_y = (int)motionEvent.getY();

break;

default:

break;

}

// 表示点击了九型人格中某一处

if( actionUp_x == actionDown_x && actionUp_y == actionDown_y){

//Log.d("resultInfo", actionUp_x + " " + actionDown_y);

// 九型人格 -- 8领导型 104 x 225 , 116 y 145

if( actionUp_x >= 104 && actionUp_x <= 225 && actionUp_y >= 116 && actionUp_y <= 145){

Toast.makeText(view.getContext() , "8号" , Toast.LENGTH_SHORT).show();

}else // 九型人格 -- 7领导型 47 x 167 , 231 y 262

if( actionUp_x >= 47 && actionUp_x <= 167 && actionUp_y >= 231 && actionUp_y <= 262 ){

Toast.makeText(view.getContext() , "7号" , Toast.LENGTH_SHORT).show();

}else // 九型人格 -- 9领导型 301 x 396 , 18 y 92

if( actionUp_x >= 301 && actionUp_x <= 396 && actionUp_y >= 18 && actionUp_y <= 92 ){

Toast.makeText(view.getContext() , "9号" , Toast.LENGTH_SHORT).show();

}else // 九型人格 -- 1领导型 471 x 585 , 116 y 151

if( actionUp_x >= 471 && actionUp_x <= 585 && actionUp_y >= 116 && actionUp_y <= 151 ){

Toast.makeText(view.getContext() , "1号" , Toast.LENGTH_SHORT).show();

}else // 九型人格 -- 2领导型 533 x 651 , 232 y 266

if(actionUp_x >= 533 && actionUp_x <= 651 && actionUp_y >= 232 && actionUp_y <= 266 ){

Toast.makeText(view.getContext() , "2号" , Toast.LENGTH_SHORT).show();

}else // 九型人格 -- 3领导型 516 x 636 , 350 y 381

if(actionUp_x >= 516 && actionUp_x <= 636 && actionUp_y >= 350 && actionUp_y <= 381 ) {

Toast.makeText(view.getContext(), "3号", Toast.LENGTH_SHORT).show();

}else // 九型人格 -- 4领导型 399 x 519 , 460 y 490

if(actionUp_x >= 399 && actionUp_x <= 519 && actionUp_y >= 460 && actionUp_y <= 490 ) {

Toast.makeText(view.getContext(), "4号", Toast.LENGTH_SHORT).show();

}else // 九型人格 -- 5领导型 177 x 293 , 456 y 493

if(actionUp_x >= 177 && actionUp_x <= 293 && actionUp_y >= 456 && actionUp_y <= 493 ) {

Toast.makeText(view.getContext(), "5号", Toast.LENGTH_SHORT).show();

}else // 九型人格 -- 6领导型 61 x 179 , 348 y 388

if(actionUp_x >= 61 && actionUp_x <= 179 && actionUp_y >= 348 && actionUp_y <= 388 ) {

Toast.makeText(view.getContext(), "6号", Toast.LENGTH_SHORT).show();

}

}

// 第一次进来 是 false , 第二次进来是true

if( actionflag == true){

actionUp_x = 0 ; actionUp_y = 0;

}

return true;

}

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值