Форум программистов, компьютерный форум, киберфорум
Наши страницы
Программирование Android
Войти
Регистрация
Восстановить пароль
 
Рейтинг 4.60/5: Рейтинг темы: голосов - 5, средняя оценка - 4.60
Star2016
5 / 5 / 0
Регистрация: 26.07.2016
Сообщений: 233
1

OnClick для всего экрана

22.08.2016, 09:05. Просмотров 826. Ответов 9
Метки нет (Все метки)

На Activity находится много компонентов. Activity несколько штук. И нужно сделать так чтобы при касании экрана в любом месте выполнялось

Java
1
2
3
4
  public void onClick(View view)
    {
        //должно выполняться
    }
вставлять это во все onClik всех компонентов в программе не вариант. Как можно решить проблему?
0
Лучшие ответы (1)
Similar
Эксперт
41792 / 34177 / 6122
Регистрация: 12.04.2006
Сообщений: 57,940
22.08.2016, 09:05
Ответы с готовыми решениями:

Программное создание обработчика события OnClick для button
Иметься кнопка, которая создается самим пользователем Код создания кнопки: public void...

Скриншот всего экрана
Добрый день, может кто подсказать статью или код, где есть НОРМАЛЬНО работающая функция для...

Скриншот не всего экрана, а только изменившейся области
В общем задача такая. Вишу программу для удаленного управления. Для оптимизации решил отправлять не...

Закрепить форму на экране со сдвигом всего экрана
Нужно прижать форму к краю экрана и поджать остальное на экране. Так можно делать с панелью задач,...

Прога для безвозвратного удаления всего, всего с винта сочетанием клавиш
Всем доброго времени суток! Есть ли прога для безвозвратного удаления всего, всего с винта...

9
vxg
Модератор
3284 / 2080 / 328
Регистрация: 13.01.2012
Сообщений: 8,079
22.08.2016, 09:28 2
Star2016, положить сверху прозрачный кликовосприимчивый контрол
0
Star2016
5 / 5 / 0
Регистрация: 26.07.2016
Сообщений: 233
22.08.2016, 09:36  [ТС] 3
Думал в направлении прозрачный Layout но я не буду терять клик по кнопкам? То есть этот прозрачный Layout не перекроет весь интерфейс заблокировав его?
0
vxg
Модератор
3284 / 2080 / 328
Регистрация: 13.01.2012
Сообщений: 8,079
22.08.2016, 09:59 4
Star2016, перекроет. а разве не этого вы хотите? разве не это означает фраза "при касании экрана в любом месте"?

Добавлено через 58 секунд
пока программа работает в нормальном режиме прозрачный слой можно просто сделать невидимым простите за каламбур - тогда на него не будет кликаться
0
Star2016
5 / 5 / 0
Регистрация: 26.07.2016
Сообщений: 233
22.08.2016, 10:07  [ТС] 5
Я наверно слишком путанно объяснил. Мне нужно отлавливать событие касание экрана чтобы включать подсветку экрана. То есть коснулись экрана и подсветка со 20% на 100% , а через 15 секунд снова 20% Как это реализовать - понятно, НО вот как ловить событие касания при учете того что нужно сохранить функциональность интерфейса и при подсветке в 20%
0
vxg
Модератор
3284 / 2080 / 328
Регистрация: 13.01.2012
Сообщений: 8,079
22.08.2016, 10:19 6
Цитата Сообщение от Star2016 Посмотреть сообщение
Мне нужно отлавливать событие касание экрана чтобы включать подсветку экрана. То есть коснулись экрана и подсветка со 20% на 100% , а через 15 секунд снова 20%
ооо
0
Pablito
2832 / 2252 / 760
Регистрация: 12.05.2014
Сообщений: 7,857
Завершенные тесты: 1
22.08.2016, 10:36 7
Лучший ответ Сообщение было отмечено Star2016 как решение

Решение

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
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
import android.os.Bundle;
import android.support.v7.app.AppCompatActivity;
import android.view.MotionEvent;
import android.view.WindowManager;
 
public class MainActivity extends AppCompatActivity {
 
    private static final int DELAY = 15000;
 
    private final Runnable actionDimScreen = new Runnable() {
        @Override
        public void run() {
            dimScreen();
        }
    };
 
    private float defaultBrightness;
 
    @Override
    protected void onCreate(Bundle savedInstanceState) {
        super.onCreate(savedInstanceState);
        setContentView(R.layout.activity_main);
        //
        final WindowManager.LayoutParams lp = getWindow().getAttributes();
        defaultBrightness = lp.screenBrightness;
        dimScreen();
    }
 
    @Override
    protected void onResume() {
        super.onResume();
        dimScreen();
    }
 
    private void dimScreen() {
        final WindowManager.LayoutParams lp = getWindow().getAttributes();
        lp.screenBrightness = 0; // это не выключение экрана, а минимальный уровень яркости
        getWindow().setAttributes(lp);
    }
 
    private void restoreBrightness() {
        final WindowManager.LayoutParams lp = getWindow().getAttributes();
        lp.screenBrightness = defaultBrightness;
        getWindow().setAttributes(lp);
    }
 
    @Override
    public boolean dispatchTouchEvent(MotionEvent e) {
        switch (e.getAction()) {
            case MotionEvent.ACTION_DOWN:
                restoreBrightness();
                getWindow().getDecorView().removeCallbacks(actionDimScreen);
                break;
            case MotionEvent.ACTION_UP:
                getWindow().getDecorView().postDelayed(actionDimScreen, DELAY);
                break;
        }
        return super.dispatchTouchEvent(e);
    }
}
на 100% это слишком, пусть берет дефолтное значение, которое задано в системе или пользователем в настройках
2
Valakin
299 / 100 / 15
Регистрация: 21.02.2015
Сообщений: 807
22.08.2016, 11:10 8
Цитата Сообщение от Star2016 Посмотреть сообщение
onClik всех компонентов в программе не вариант
писать родительскую активити с прописанным onTouchEvent(),
у других активити написать что они наследуются от родительской активити
как вариант
0
Pablito
22.08.2016, 11:12
  #9

Не по теме:

тем, кто не любит читать мои сообщения
dispatchTouchEvent - метод активити, который хавает все касания внутри этой активити

0
Star2016
5 / 5 / 0
Регистрация: 26.07.2016
Сообщений: 233
22.08.2016, 11:14  [ТС] 10
dispatchTouchEvent - отлично работает! Спасибо!!! А что касается 100% яркости то я привел это значение для примера. На самом деле верхняя гланица впрочем как и нижняя задается пользователем в настройках программы.
0
22.08.2016, 11:14
MoreAnswers
Эксперт
37091 / 29110 / 5898
Регистрация: 17.06.2006
Сообщений: 43,301
22.08.2016, 11:14

Как узнать усредненный (среднеарифметический) цвет всего экрана?
Здравствуйте. У меня в комнате по периметру потолка в коробе проложена RGB лента с радиоуправляемым...

Невозможно ввести строку после заполнения всего экрана текстом
Я обнаружил баг - если заполнить весь экран текстом, то при попытке ввести новую строку ничего...

Свойство окна формы (перекрытие всего экрана и панели задач Windows)
Привет всем, какое свойство окна формы позволяет "закрывать" весь экран, независимо от свойств...


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

Или воспользуйтесь поиском по форуму:
10
Ответ Создать тему
Опции темы

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