Мечта с прозрачным фоном
Я пытаюсь реализовать сервис Daydream с прозрачным фоном.
Я написал следующий код:
public void onAttachedToWindow() {
super.onAttachedToWindow();
setContentView(R.layout.mydream);
getWindow().setBackgroundDrawable(new ColorDrawable(0));
.
.
.
}
Но когда я запускаю мечту, фон прозрачен только на 1 секунду. После этого он превращается в черный фон.
Кто-нибудь может мне с этим помочь?
3 ответа
Этот вопрос может иметь ответ, который вам нужен: Как мне создать прозрачную активность на Android?
Вы можете сделать это, создав прозрачную тему и применив ее к своей деятельности.
После очень долгого расследования было найдено решение
вы можете получить доступ к параметрам макета window.decorView и установить затемнение на 0f, и это сделает окно заставки прозрачным,
вот мой код
(window.attributes).apply {
dimAmount = 0f
format = PixelFormat.RGBA_8888 // I also suggest to set color format PixelFormat.RGBA_8888 and bellow all this code set window.decorView.setBackgroundColor(Color.TRANSPARENT)
windowManager.updateViewLayout(window.decorView, this)
}
window.decorView.setBackgroundColor(Color.TRANSPARENT)
К счастью, вы можете получить доступ к окну DreamService. Итак, что вы можете сделать в своем классе DreamService:
@Override
public void onAttachedToWindow() {
super.onAttachedToWindow();
setInteractive(true);
setContentView(R.layout.dream_service);
getWindow().setBackgroundDrawable(new ColorDrawable(Color.parseColor("#00FFFFFF")));
}
Убедитесь, что ваш макет DreamService имеет прозрачный фон;-)