点击不同的区域,其实就是因为坐标分布的区域的不同,从而根据自己的需求,划分出不同的区域,不同的区域不用的点击事件
坐标的获取又需要在OnTouchListener中获取
即:
iv.setOnTouchListener(new OnTouchListener() {
@Override
public boolean onTouch(View v, MotionEvent event) {
// TODO Auto-generated method stub
switch (event.getAction()) {
case MotionEvent.ACTION_UP:
onSingleTop(event);//自定义方法onSingleTop
break;
default:
break;
}
return true;
}
});
private void onSingleTop(MotionEvent event) {
// TODO Auto-generated method stub
// 获取触摸点的坐标 x, y
float x = event.getX();
float y = event.getY();
// 目标点的坐标
float dst[] = new float[2];
// 获取到ImageView的matrix
Matrix imageMatrix = iv.getImageMatrix();
// 创建一个逆矩阵
Matrix inverseMatrix = new Matrix();
// 求逆,逆矩阵被赋值
imageMatrix.invert(inverseMatrix);
// 通过逆矩阵映射得到目标点 dst 的值
inverseMatrix.mapPoints(dst, new float[]{x, y});
// 判断dstX, dstY在Bitmap上的位置即可
int dstX = (int) dst[0];
int dstY = (int) dst[1];
Log.e("1111111", dstX+","+dstY+"");
//这里根据自己需要的区域进行相关的判断就可以
if((555 >= dstX && dstX >= 220)&&(480 >= dstY && dstY >= 330)) {
Intent intent = new Intent(LBBannerActivity.this,HomePageActivity.class);
isStop = true;
startActivity(intent);
}
}