Создание переходов по кликам - PullRequest
4 голосов
/ 08 июля 2011

Я пытаюсь настроить яркость телефона программно. У меня есть активность в моем приложении, которая делает это полупрозрачной, однако пользователи не могут щелкнуть по ней в окне активности или под ним. Я отключаю это действие, как только яркость установлена, однако я хочу выполнять больше работы в этом упражнении (например, постепенную регулировку яркости), которая требует некоторого времени, и я не хочу, чтобы пользователь стучал по телефону, задаваясь вопросом, почему его действия не регистрируются.

Так что, в принципе, мне нужно либо создать фиктивное окно, которое позволит мне успешно регулировать яркость экрана, не отображая его, либо решить, как сделать клик по действию. Я не уверен, как это сделать.

Кстати, это код, выполняющий регулировку яркости в Activity:

android.provider.Settings.System.putInt(getContentResolver(),
            android.provider.Settings.System.SCREEN_BRIGHTNESS, Math.round(SOME_BRIGHTNESS * 255f));

Window window = getWindow(); 
window.getAttributes().screenBrightness = SOME_BRIGHTNESS;
window.setAttributes(window.getAttributes());

float sysBrightPer = getSystemBrightness(getApplicationContext());   

new Thread() {
    public void run() {
         try {
             sleep(BRIGHT_TIMEOUT);
         } catch (InterruptedException e) {
             e.printStackTrace();
         }
         finish();
    }
}.start();  

Какой совет?

P.S. Я нашел это приложение на рынке. Интересно, поможет ли мне этот способ? https://market.android.com/details?id=com.haxor

Ответы [ 2 ]

6 голосов
/ 08 июля 2011

Хах! Это приложение помогло мне хотя бы потому, что привело меня к этому решению! Фильтр яркости экрана

Для ленивого клика используйте это:

    getWindow().addFlags(WindowManager.LayoutParams.FLAG_NOT_TOUCHABLE);  
0 голосов
/ 27 октября 2013

Боюсь, это больше не работает в 4.0+, если применять его к самому окну (предположительно, для предотвращения использования методов класса активности, таких как onkey, из прозрачного наложения).Однако можно по-прежнему использовать windowmanager.addview или layoutinflater.inflate, чтобы добавить пользовательский класс представлений, который расширяет viewgroup, и если вы используете layoutparams.FLAG_NOT_TOUCHABLE при добавлении или накачке этого представления, он будет проходить по клику и останется сверху даже придеятельность, которая вызвала это, входит в паузу.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...