Здравствуйте!
Пытаюсь использовать пример, описанный в уроке, под свою задачу, но не совсем получается.
[syntax=java5]public class Alarm_Activity extends FragmentActivity implements View.OnTouchListener {
float x, y;
TextView tvX;
ImageView ivClock;
public void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
setContentView(R.layout.set_alarm);
tvX = (TextView) findViewById(R.id.textView);
ivClock = (ImageView) findViewById(R.id.imageView);
ivClock.setOnTouchListener(this);
}
@Override
public boolean onTouch(View v, MotionEvent event) {
if (v.getId() == R.id.imageView) {
x = event.getX();
y = event.getY();
switch (event.getAction()) {
case MotionEvent.ACTION_UP:
tvX.setText(x + ", " + y);
break;
}
return true;
}
return false;
}
}[/syntax]
[syntax=xml]<?xml version="1.0" encoding="utf-8"?>
<FrameLayout xmlns:android="
http://schemas.android.com/apk/res/android"
android:layout_width="match_parent" android:layout_height="match_parent">
<TextView
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:text="New Text"
android:id="@+id/textView" />
<ImageView
android:layout_width="match_parent"
android:layout_height="wrap_content"
android:id="@+id/imageView"
android:src="@drawable/clock_7"
android:layout_gravity="center" />
</FrameLayout>[/syntax]
Написанный код выводит в textView координаты отпускания пальца от экрана. Скажите, пожалуйста, почему возвращаются координаты по нажатию любой области layout, не только по заданному imageView?
Если точнее, мне нужно получить координаты нажатия на imageView относительно его верхнего левого угла. Как это правильнее сделать?