캔버스로 네모를 그리고 그 비트맵을 이미지뷰에 뿌려주었습니다.
그리고나서 이미지뷰에 터치리스너를 걸고 터치될떄 터치영역이 캔버스에서 그린 네모의
안인지 밖인지 구분하려고하는데요,, 캔버스영역에서 그린 네모상자라서 지금은 일단
제가 터치좌표를 일일이 찍어서 하드코딩으로 구분하고있는데요..
하드코딩말고 캔버스에서 그린 네모의 영역을 체크 할 수 있는 방법이 있을까요?
지난주에 질문 올려서 Rect.contains 쓰라고 하신 분이 있어 해봤는데
좌표가 전혀 맞지 않아서 다시 질문 올립니다..
아래는 Rect.contains를 사용한 코드입니다. 좌표가 전혀 맞지 않습니다.. 도와주세요..
Bitmap bitmap = Bitmap.createBitmap(basePreviewWidth, basePreviewHeight, Bitmap.Config.ARGB_8888);
Canvas canvas= new Canvas(bitmap);
Rect rect = new Rect();
rect .set((int) (316f * sRatio), (int) (285f * sRatio), (int)(539f * sRatio), (int) (370f * sRatio));
canvas.drawRect(rect, paint);
ImageView imageView = new ImageView(context);
imageView.setImageBitmap(bitmap);
imageView.setPadding(10, 10, 10, 10);
imageView.setScaleType(ImageView.ScaleType.FIT_XY);
imageView.setLayoutParams(new LinearLayout.LayoutParams(preViewWidth, preViewHeight));
imageView.setOnTouchListener(new View.OnTouchListener() {
@Override
public boolean onTouch(View v, MotionEvent event) {
if (rect.contains((int) event.getX(), (int) event.getY())) {
System.out.println("true!!!");
} else {
System.out.println("false!!!");
}
}
});
view.add(imageView);