Форум программистов, компьютерный форум CyberForum.ru

Программирование Android

Войти
Регистрация
Восстановить пароль
 
Рейтинг: Рейтинг темы: голосов - 11, средняя оценка - 4.82
Т_Ё_М_А
23 / 6 / 2
Регистрация: 14.12.2009
Сообщений: 282
#1

Работа с кнопками - Программирование Android

23.03.2013, 11:22. Просмотров 1414. Ответов 14
Метки нет (Все метки)

Есть 4 ImageButton при нажатии на которых должно происходить одно действие, а при отжатии - другое. Это работает. Но если провести пальцем по всем 4-ём кнопкам - ничего не происходит. Нужно сделать, чтобы в этом случае, они работали как в пианино. Как чтобы при наведении пальцем на кнопку сработало ACTION_DOWN, а при выходе за границы кнопки - ACTION_UP.

Java
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
@Override
    public boolean onTouch(View v, MotionEvent event) {
        int action = event.getAction();
        TextView tvOut = (TextView) findViewById(R.id.tvOut);
        switch (v.getId()) {
        case R.id.ImageButton01:
            if (action == MotionEvent.ACTION_DOWN) {
                OurSoundPlayer.playSound(this, OurSoundPlayer.S1,0);
                tvOut.setText("тач 1"); }     
            if (action == MotionEvent.ACTION_UP) {
                tvOut.setText("отжато 1");  }
            break;
        case R.id.ImageButton02: 
            if (action == MotionEvent.ACTION_DOWN) {
                OurSoundPlayer.playSound(this, OurSoundPlayer.S2,0);
                tvOut.setText("тач 2"); }     
            if (action == MotionEvent.ACTION_UP) {
                tvOut.setText("отжато 2");  }
            break;
        case R.id.ImageButton03:
            if (action == MotionEvent.ACTION_DOWN) {
                OurSoundPlayer.playSound(this, OurSoundPlayer.S1,0);
                tvOut.setText("тач 3"); }     
            if (action == MotionEvent.ACTION_UP) {
                tvOut.setText("отжато 3");  }
            break;
        case R.id.ImageButton04: 
            if (action == MotionEvent.ACTION_DOWN) {
                OurSoundPlayer.playSound(this, OurSoundPlayer.S3,0);
            tvOut.setText("тач 4"); }     
            if (action == MotionEvent.ACTION_UP) {
            tvOut.setText("отжато 4");  }
            break;
    }
        return true;
    }
Similar
Эксперт
41792 / 34177 / 6122
Регистрация: 12.04.2006
Сообщений: 57,940
23.03.2013, 11:22     Работа с кнопками
Посмотрите здесь:

Работа с кнопками - Программирование Android
как сделать чтоб кнопка создавала другие кнопки которые вою очередь открывали таблицы SQLite и имя им самим давать.

Работа с текстом и кнопками - Программирование Android
Всем привет . Подскажите пожалуйста как изменять шрифт текста , цвет кнопок и отступы между кнопками ( не через вкладку Design в main.xml...

Прокручивание экрана с кнопками - Программирование Android
Как написать ScroolView(прокручивание экрана) с кнопками(без кнопок умею) чтобы работало в Activity? и как сделать чтобы прокручивание...

ScrollView под кнопками - Программирование Android
Не могу никак добиться, что бы ScrollView был до кнопок. Сейчас же он прокручивается и под кнопками. Как это исправить? <RelativeLayout...

Создание прокрутки с кнопками - Программирование Android
Добрый вечер, Я новичек в этом деле так что не судите строго. Мне нужно создать список из кнопок с прокруткой. вот код программы...

Всплывающее меню с кнопками - Программирование Android
Как повторить это всплывающее меню

Переключение между элементами на экране кнопками - Программирование Android
Всем привет! Столкнулся с такой проблемкой. Не могу найти посредством гугла как переключаться между элементами на экране с помощью...

После регистрации реклама в сообщениях будет скрыта и будут доступны все возможности форума.
KypcPerm
5 / 5 / 0
Регистрация: 23.03.2013
Сообщений: 38
23.03.2013, 11:31     Работа с кнопками #2
Попробуй это сделать по координатам. Ты же знаешь координаты imageview и его размеры. С помощью event.GetX и event.GetY получаешь координаты касания, и при совпадении координат касания и кнопки - считай ACTION_DOWN, если координаты перестали совпадать значит ACTION_UP.
Т_Ё_М_А
23 / 6 / 2
Регистрация: 14.12.2009
Сообщений: 282
24.03.2013, 16:00  [ТС]     Работа с кнопками #3
А как узнать точные координаты ImageButton ?
Тут только отступы написаны:
Кликните здесь для просмотра всего текста
Java
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
    <ImageButton
        android:id="@+id/ImageButton04"
        android:layout_width="wrap_content"
        android:layout_height="wrap_content"
        android:layout_alignParentLeft="true"
        android:layout_below="@+id/ImageButton03"
        android:layout_marginTop="20dp"
        android:background="@null"
        android:src="@drawable/right_hand_botton" />
 
    <ImageButton
        android:id="@+id/ImageButton02"
        android:layout_width="wrap_content"
        android:layout_height="wrap_content"
        android:layout_alignParentLeft="true"
        android:layout_below="@+id/ImageButton01"
        android:layout_marginTop="20dp"
        android:background="@null"
        android:onClick="ButtonClick2"
        android:src="@drawable/right_hand_botton" />
 
    <ImageButton
        android:id="@+id/ImageButton03"
        android:layout_width="wrap_content"
        android:layout_height="wrap_content"
        android:layout_alignParentLeft="true"
        android:layout_below="@+id/ImageButton02"
        android:layout_marginTop="20dp"
        android:background="@null"
        android:longClickable="true"
        android:onClick="ButtonClick3"
        android:src="@drawable/right_hand_botton" />
 
    <ImageButton
        android:id="@+id/ImageButton01"
        android:layout_width="wrap_content"
        android:layout_height="wrap_content"
        android:layout_alignParentLeft="true"
        android:layout_alignParentTop="true"
        android:background="@null"
        android:onClick="ButtonClick1"
        android:src="@drawable/right_hand_botton" />

А размер картинок 75x75 px
c4sp3r
0x5B4C322291BD52AE
92 / 92 / 5
Регистрация: 04.03.2013
Сообщений: 295
24.03.2013, 17:49     Работа с кнопками #4
Т_Ё_М_А,

Попробуй использовать событие onFling()
http://developer.android.com/trainin.../detector.html
Т_Ё_М_А
23 / 6 / 2
Регистрация: 14.12.2009
Сообщений: 282
24.03.2013, 18:18  [ТС]     Работа с кнопками #5
c4sp3r, И чем onFling() мне поможет? Мне же не важна скорость перемещения..
Мне бы область ImageButtonа определить...

Добавлено через 34 секунды
Чтобы сделать, как посоветовал KypcPerm.
KypcPerm
5 / 5 / 0
Регистрация: 23.03.2013
Сообщений: 38
25.03.2013, 08:11     Работа с кнопками #6
По-моему должны быть методы GetLeft b GetTop, c помощью которых мы можем получить месторасположение объекта.
V0v1k
1158 / 982 / 1
Регистрация: 28.06.2012
Сообщений: 3,462
25.03.2013, 12:44     Работа с кнопками #7
вроде в таком случае екшены ловит тот контрол, на который ты нажал, а когда ведешь пальцем это ACTION_MOVE.
сделай чтобы кнопки не ловили екшены, а только чтобы их родительский лаяут ловил и проверяй попадает ли палец в пределы кнопки.
Java
1
2
3
4
button.getHitRect(outRect); 
if(outRect.contains(x,y){
...
}
Т_Ё_М_А
23 / 6 / 2
Регистрация: 14.12.2009
Сообщений: 282
26.03.2013, 15:12  [ТС]     Работа с кнопками #8
Цитата Сообщение от V0v1k Посмотреть сообщение
вроде в таком случае екшены ловит тот контрол, на который ты нажал, а когда ведешь пальцем это ACTION_MOVE.
Да, если нажать на кнопку1 и провести пальцем по остальным и отжать, то сработает ACTION_UP кнопки1.

Цитата Сообщение от V0v1k Посмотреть сообщение
сделай чтобы кнопки не ловили екшены, а только чтобы их родительский лаяут ловил и проверяй попадает ли палец в пределы кнопки.
как задать пределы круглой кнопки? должен же быть какой-то специальный метод... а если кнопка произвольной формы..или с дырками.. Область описать не выйдет одними координатами ОХ и ОУ.
V0v1k
1158 / 982 / 1
Регистрация: 28.06.2012
Сообщений: 3,462
26.03.2013, 15:24     Работа с кнопками #9
забейте на форму, девайсы и так маленькие, пусть вся область ловит екшен хоть там и дырка или срезанные углы, для пользователя будет удобнее.
Pahanuch
324 / 159 / 13
Регистрация: 03.11.2010
Сообщений: 920
26.03.2013, 15:56     Работа с кнопками #10
V0v1k нельзя задать как-то с помощью х,у и радиуса? Может быть есть какой-то getHitCircle)?
V0v1k
1158 / 982 / 1
Регистрация: 28.06.2012
Сообщений: 3,462
26.03.2013, 16:05     Работа с кнопками #11
вьюшки прямоугольны (других не встречал) какой бы вы им не задали внешний вид.
все наоборот увеличивают область хендлинга для удобства пользователя, а вы хотите уменьшить...
Pahanuch
324 / 159 / 13
Регистрация: 03.11.2010
Сообщений: 920
26.03.2013, 16:31     Работа с кнопками #12
так ImageView или ImageButton?
Т_Ё_М_А
23 / 6 / 2
Регистрация: 14.12.2009
Сообщений: 282
26.03.2013, 16:33  [ТС]     Работа с кнопками #13
ImageButton
Вот
Кликните здесь для просмотра всего текста

Просто если их можно создать круглые, то как и работать с ними как-то, должно быть, можно...
V0v1k
1158 / 982 / 1
Регистрация: 28.06.2012
Сообщений: 3,462
26.03.2013, 16:41     Работа с кнопками #14
это рисунок круглый а не View.
MoreAnswers
Эксперт
37091 / 29110 / 5898
Регистрация: 17.06.2006
Сообщений: 43,301
29.03.2013, 09:31     Работа с кнопками
Еще ссылки по теме:

При вставке в FrameLayout низ скрывается за кнопками - Программирование Android
народ помогите пожалуйста как можно сделать, чтобы при добавления фрагмента в FrameLayout, чтобы он не уходил ниже кнопок(стрелки назад,...

Скрытие Navigation Bar (нижнее мню с тремя кнопками) - Программирование Android
Здравствуйте. Подскажите пожалуйста как можно спрятать этот несчастный Navigation Bar так чтоб сидел себе тихо и не показывался больше до...

Как сделать панель с кнопками внизу, которую можно проматывать - Программирование Android
Подскажите, как сделать такую панель? Внизу кнопки и они все не входят на экран, можно промотать вправо. Как такое сделать?

Как увеличить всю страницу пальцами, вместе с кнопками текстом и изображениями? - Программирование Android
как увеличить всю страницу пальцами, вместе с кнопками текстом и изображениями. что бы все оставалось на своих местах в том месте где...

Написать свой компонент для частого использования в дальнейшем — редактор с двумя кнопками - Программирование Android
Нужно написать свой компонент для частого использования в дальнейшем - редактор с двумя кнопками и одной текстовой строкой описания....


Искать еще темы с ответами

Или воспользуйтесь поиском по форуму:
KypcPerm
5 / 5 / 0
Регистрация: 23.03.2013
Сообщений: 38
29.03.2013, 09:31     Работа с кнопками #15
Проблем с круглой кнопкой нет. Для этого есть формула (x-x0)^2+(y-y0)^2<=R^2, где x0 и y0 - центры окружности, а R радиус окружности, если это условие выполняется, то палец находиться внутри круга.
Yandex
Объявления
29.03.2013, 09:31     Работа с кнопками
Ответ Создать тему
Опции темы

КиберФорум - форум программистов, компьютерный форум, программирование
Powered by vBulletin® Version 3.8.9
Copyright ©2000 - 2017, vBulletin Solutions, Inc.
Рейтинг@Mail.ru