Урок 102. Touch – обработка касания

Обсуждение уроков
Maksim_L
Сообщения: 1
Зарегистрирован: 20 авг 2014, 12:55

Re: Урок 102. Touch – обработка касания

Сообщение Maksim_L » 20 авг 2014, 15:33

Здравствуйте, не получается реализовать нечто такое. Есть восемь кастомных ToggleButton в виде белых кружков (положение off), нажимаю на первый из них и провожу пальцем по всем остальным, тем самым переключаю их все в красный цвет (положение on). Их переключение меня не затрудняет при одиночном нажатии, а вот чтобы нажатие происходило при вхождении в зону следующих ToggleButtonов затрудняет). Думаю это по теме, прошу помощи.

ahill
Сообщения: 2
Зарегистрирован: 28 сен 2014, 15:55

Re: Урок 102. Touch – обработка касания

Сообщение ahill » 28 сен 2014, 16:08

Здравствуйте. Планирую реализовать активити с 3-мя графическими объектами, которые в совокупности занимают весь экран(для изображение объектов использую ImageButton, так как планируется обработка нажатий на графические объекты). Так вот, при чистом экране все работает, а накидав ImageButton ничего не происходит. Пробовал вешать на RelativeLayout - все равно не работает. Подскажите пожалуйста выход. Может использовать не ImageButton или как быть? заранее благодарю

Sanek517s
Сообщения: 33
Зарегистрирован: 03 ноя 2014, 19:39

Re: Урок 102. Touch – обработка касания

Сообщение Sanek517s » 21 фев 2015, 09:06

Всем привет. Пытаюсь реализовать одну игрушку. Имеется GridView с обработчиками OnTouch и OnItemClickListener. OnTouch просто "перекрывает" все другие обработчики. Не подскажете какую-нибудь фичу.

Sanek517s
Сообщения: 33
Зарегистрирован: 03 ноя 2014, 19:39

Re: Урок 102. Touch – обработка касания

Сообщение Sanek517s » 21 фев 2015, 09:07

Нашел решение. Ребята, кому нужно - просто в OnTouch return ставим false.

Sanek517s
Сообщения: 33
Зарегистрирован: 03 ноя 2014, 19:39

Re: Урок 102. Touch – обработка касания

Сообщение Sanek517s » 15 мар 2015, 14:52

Всем еще раз привет. У меня есть GridView и на нем висит OnTuchListener. Необходимо, когда веду пальцем, закрасить пройденные элементы. При этом необходимо передавать позиции пройденных (выделенных) элементов. У кого есть какие идеи?

takky
Сообщения: 3
Зарегистрирован: 02 сен 2015, 22:39

Re: Урок 102. Touch – обработка касания

Сообщение takky » 02 сен 2015, 23:01

Очень хороший урок. Но вот интересная особенность: ACTION_DOWN срабатывает не сразу, а примерно через пол-секунды. После того, как он таки сработал, все остальные события срабатывают мгновенно, то есть и ACTION_MOVE и ACTION_UP срабатывают сразу от движения или от убирания пальца, а вот DOWN тормозит. Еще заметил, когда игрался с мульти-тачем, что если сперва один палец приложить к экрану(и не убирать), то DOWN второго и последующих пальцев срабатывает мгновенно! А вот первый почему-то тормозит. Недаром я не видел ни одного андроид-приложения, где нажатие на кнопки подсвечивалось бы сразу: все тормознутые, и нажатие подсвечивается либо уже после убирания пальца, либо от долгого нажатия. Кто-нибудь пробовал решить эту задачу?

Вова
Сообщения: 2
Зарегистрирован: 22 мар 2016, 20:28

Re: Урок 102. Touch – обработка касания

Сообщение Вова » 05 апр 2016, 21:20

Здравствуйте!

Пытаюсь использовать пример, описанный в уроке, под свою задачу, но не совсем получается.

[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 относительно его верхнего левого угла. Как это правильнее сделать?

Ответить