Мечта с прозрачным фоном

Я пытаюсь реализовать сервис 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 имеет прозрачный фон;-)

Другие вопросы по тегам