Android прозрачное изображение во всплывающем окне не прозрачно - PullRequest
3 голосов
/ 26 мая 2011

Я пытаюсь отобразить прозрачное изображение как всплывающее окно.Для этого я настроил всплывающее окно в соответствии с моими потребностями и надуваю относительную компоновку в этом popupwindow initview ().

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

У меня нет никакой опции, кроме popupwindow, потому что я должен использовать элементы управления на фоновом экране.

Я попытался установить прозрачный стиль для этого относительного макета, хотя он не работает.

Может кто-нибудь сказать мне, как это сделать

или

есть ли ошибка во всплывающем окне Android.

Заранее спасибо.

Ответы [ 4 ]

2 голосов
/ 25 ноября 2013

Есть правильное решение.Проблема заключается в том, что фон всплывающего окна определяется в стиле темы действия.

Решение:

  1. определяет вашу собственную тему для приложения или отображения действияPopupWindow.

    • Вы можете выбрать другую родительскую тему.
    • настроить запись "android: popupWindowStyle"

      <style name="CustomTheme" parent="@android:style/Theme.NoTitleBar">
          <item name="android:popupWindowStyle">@style/PopupWindow</item> 
      </style>
      
  2. определить popupWindowStyle.запись "android: popupBacground" задает фон для всего отображения popupWindow с этой конкретной темой.

    <style name="PopupWindow" parent="@android:style/Widget.PopupWindow">
         <item name="android:popupBackground">@color/transparent</item> 
    </style>
    
  3. добавление темы CustomTheme в действие или приложение

    <application
            ...
            android:theme="@style/CustomTheme" >
    

Всплывающее окно будет отображаться с прозрачным фоном.

1 голос
/ 10 июня 2011

Мы нашли решение для этого - при настройке всплывающего окна мы должны установить фон как ноль.setBackgroundDrawable (нуль);Тогда это сработало.

1 голос
/ 26 мая 2011

Используйте темы андроида во всплывающем окне. Если это действие, объявите его в манифесте.

android: theme = "@ android: style / Theme.Translucent"

EDIT Установить тему для диалога следующим образом

mDialogTax = new Dialog (mContext, android.R.style.Theme_Translucent_NoTitleBar_Fullscreen);

0 голосов
/ 28 августа 2011

Laurent,

Нам нужно установить прозрачность для нашего представления после его раздувания:

inflatedView.setBackgroundColor(android.R.color.transparent);

Компонент, к которому мы привязываем PopupWindow, не являетсядолжен быть прозрачным, даже если это может быть макет.

Установка фона PopupWindow не требуется:

this.setBackgroundDrawable(null);

Установка значения альфа не требуется:

this.getBackground().setAlpha(<value>);

Установка фона изображения, если оно естьPNG не требуется:

imageView.setBackgroundColor(android.R.color.transparent);

Установка фона изображения в его определении XML не требуется:

<ImageView  android:id="@+id/myimage"
            android:background="@android:color/transparent"
            />

Спасибо ...

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