Яркость экрана Android, которая не падает
У меня есть активность, которая повышает яркость экрана
/* turn screen brightness up */
this.getWindow().getAttributes().screenBrightness = 1;
Я обнаружил, что эта встроенная функция Android ломает некоторые телефоны.
Есть ли более универсальный способ повысить яркость экрана?
3 ответа
Правильный способ установить атрибуты с setAttributes()
:
WindowManager.LayoutParams lp = this.getWindow().getAttributes();
lp.screenBrightness = 1;
this.getWindow().setAttributes(lp);
Вы можете попробовать значение, которое почти 1
, Например: 0.999
,
Если вы хотите, чтобы сенсорные события проходили через вас, вам нужно сделать больше, чем просто настроить яркость. Вам необходимо установить параметры вида и макета.view.setFocusable(false);
view.setClickable(false);
view.setKeepScreenOn(false);
view.setLongClickable(false);
view.setFocusableInTouchMode(false);
layoutParams.height = LayoutParams.FILL_PARENT;
layoutParams.width = LayoutParams.FILL_PARENT;
layoutParams.flags = 280; // You can try LayoutParams.FLAG_FULLSCREEN too
layoutParams.format = PixelFormat.TRANSLUCENT; // You can try different formats
layoutParams.windowAnimations = android.R.style.Animation_Toast; // You can use only animations that the system to can access
layoutParams.type = LayoutParams.TYPE_SYSTEM_OVERLAY;
layoutParams.gravity = Gravity.BOTTOM;
layoutParams.x = 0;
layoutParams.y = 0;
layoutParams.verticalWeight = 1.0F;
layoutParams.horizontalWeight = 1.0F;
layoutParams.verticalMargin = 0.0F;
layoutParams.horizontalMargin = 0.0F;
Посмотрите на мой оригинальный пост.