내 화면에 이미지 (ImageView)가 있습니다. 이미지는 대략 절반의 화면을 차지하므로 이미지와 이미지 양쪽 모두를 클릭 할 수 있습니다.Android : 이미지/ImageView에서 x y 좌표를 얻으려면 어떻게해야합니까?
이미지를 클릭하면 화면에 x 좌표와 y 좌표를 얻는 방법은 무엇입니까?
onTouchEvent를 사용했지만 이미지를 클릭 할 때만 이미지 외부를 클릭 할 때만 호출되었습니다.
감사합니다, 마티아스
내 화면에 이미지 (ImageView)가 있습니다. 이미지는 대략 절반의 화면을 차지하므로 이미지와 이미지 양쪽 모두를 클릭 할 수 있습니다.Android : 이미지/ImageView에서 x y 좌표를 얻으려면 어떻게해야합니까?
이미지를 클릭하면 화면에 x 좌표와 y 좌표를 얻는 방법은 무엇입니까?
onTouchEvent를 사용했지만 이미지를 클릭 할 때만 이미지 외부를 클릭 할 때만 호출되었습니다.
감사합니다, 마티아스
클릭 이벤트를 받기 위해서 (때문에), 이미지 뷰에 OnClickListener를 사용하거나 이미지 뷰에서 클래스 및 기능 "공공 무효 onTouch (MotionEvent의 EVT)"를 덮어 얻을 수있는 X/Y가에서 좌표 추상적 이보기.
ImageView에 OnClickListener를 설정하지 않은 것 같습니다. 대신 public void onTouch (MotionEvent 이벤트는 다음과 같습니다 : – Mattias
imageView.setOnClickListener(new OnClickListener() {
@Override
public void onClick(View view) {
int[] values = new int[2];
view.getLocationOnScreen(values);
Log.d("X & Y",values[0]+" "+values[1]);
}
});
는 또한, 내 this answer뿐만 아니라 유용 할 수 있습니다.
)를 구현합니다. 화면의 이미지 위치 만 얻은 것처럼 보입니다. 클릭 한 이미지의 위치에 상관없이 (0, 205) – Mattias
어떻게 좌표를 얻을 수 있나요? click 이벤트 외부에서는 0을 얻습니다. – nikolakoco
ImageView에서 OnClickListener를 설정하지 않은 것 같습니다.
private int fieldImgXY[] = new int[2];
@Override
public void onWindowFocusChanged(boolean hasFocus) {
super.onWindowFocusChanged(hasFocus);
// Use onWindowFocusChanged to get the placement of
// the image because we have to wait until the image
// has actually been placed on the screen before we
// get the coordinates. That makes it impossible to
// do in onCreate, that would just give us (0, 0).
fieldImage.getLocationOnScreen(fieldImgXY);
Log.i(LOG_TAG, "fieldImage lockation on screen: " +
xyString(fieldImgXY[0], fieldImgXY[1]));
}
public boolean onTouchEvent(MotionEvent event) {
if (event.getAction() == MotionEvent.ACTION_DOWN) {
Log.i(LOG_TAG, "touch event - down");
int eventX = (int) event.getX();
int eventY = (int) event.getY();
Log.i(LOG_TAG, "event (x, y) = " + xyString(eventX, eventY));
int xOnField = eventX - fieldImgXY[0];
int yOnField = eventY - fieldImgXY[1];
Log.i(LOG_TAG, "on field (x, y) = " + xyString(xOnField, yOnField));
}
return super.onTouchEvent(event);
}
xyString() 메서드를 게시 할 수 있습니까? – Manikandan
'x가 있어야합니다. <= bitmap.getWidth() 'http://stackoverflow.com/questions/21347431/app-is-fc-if-the-user-presses-too-much-to-left-or-right – Si8
@Manikandan : I public String xyString (int x, int y) { return "X :"+ String.valueOf (x) + "Y :"+ String.valueOf (y); } – EdgarT
imageview.setOnTouchListener(new View.OnTouchListener() {
@Override
public boolean onTouch(View v, MotionEvent event) {
if (event.getAction() == MotionEvent.ACTION_DOWN) {
int x = (int) event.getX();
int y = (int) event.getY();
}
return false;
}
});
내가 문제를 해결하지만 난 내 자신에 대한 답변을 제출할 수없는 대신 난 단지 "공공 무효 onTouch (MotionEvent 이벤트)"와 이런 "공개 무효가 (부울 hasFocus) onWindowFocusChanged"구현 이 사이트의 정책 때문에 6 시간 동안 더 질문해야합니다. 나는 나중에 해결책을 게시 할 것이다. – Mattias