Ну, моя проблема заключается в следующем: у меня есть изображение, и я хочу, чтобы при нажатии на конкретную точку карты отображалось другое изображение.Я использую этот код
private void setImageClickListener() {
ImageView map_image=(ImageView)findViewById(R.id.map_icon);
map_image.setOnTouchListener(new ImageView.OnTouchListener() {
//OnTouchListener listener = new OnTouchListener() {
public boolean onTouch(View v, MotionEvent event) {
if(!(event.getAction() == MotionEvent.ACTION_DOWN))
return false; //If the touch event was not putting the finger down on the screen, return false(Actions may be move, up, and so on)
final float x = event.getX();
final float y = event.getY();
System.out.println("Coordinates of button pressed are: X is %d"+x+" and Y is %d"+ y);
if(x>260 && x<390 && y>270 && y< 290)
DoFirst();
//... and so on...
//In the end, you must return a boolean saying whether you "consumed" the event - if you handled the event or not.
return true;
}
});
, и мой XML-файл:
<LinearLayout xmlns:android="http://schemas.android.com/apk/res/android"
android:orientation="vertical"
android:layout_width="fill_parent"
android:layout_height="fill_parent"
android:background="#ffffff"
>
<ImageView
android:id="@+id/map_icon"
android:layout_width="fill_parent"
android:layout_height="wrap_content"
android:layout_gravity="center_horizontal"
android:scaleType="fitXY"
android:src="@drawable/home_map" />
Проблема заключается в том, что при запуске на эмуляторе координаты отличаютсяработает на разных телефонах.Как я могу сделать это работать на нескольких экранах?Я думал, что, используя event.getX, координаты относятся к координатам изображения, а не к экранным координатам.Так что я хочу, чтобы диапазон не зависел от экрана.
Любая помощь?