弹出窗口中的Android透明图像不透明

时间:2011-05-26 08:25:47

标签: android image transparent popupwindow

我正在尝试将透明图像显示为弹出窗口。为此我根据我的需要定制了弹出窗口,并在popupwindow initview()中膨胀相对布局。

在那个相对布局中,我添加了一个透明图像,但是当我运行应用程序时,它在矩形框内部是一个椭圆形图像,所以不是透明,我可以在椭圆形图像周围看到灰色。

我没有popupwindow的选项,因为我应该在后台屏幕中使用控件。

我已尝试为此相对布局设置透明样式,尽管它不起作用。

任何人都可以告诉我如何做到这一点

android popupwindow中有一个错误。

提前致谢。

4 个答案:

答案 0 :(得分:2)

有正确的解决方案。问题在于背景 popupWindow是在活动的主题样式中定义的。

解决方案:

  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" >
    
  4. popupWindow将以透明背景显示。

答案 1 :(得分:1)

在弹出窗口中使用android主题..如果是活动,请在Manifest中声明它。

  

机器人:主题= “@机器人:风格/ Theme.Translucent”

修改 像这样设置对话框的主题

  

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

答案 2 :(得分:1)

我们找到了一个解决方案 - 在自定义弹出窗口时,我们必须将背景设置为null。 setBackgroundDrawable(NULL);然后它奏效了。

答案 3 :(得分:0)

Laurent,

我们需要在透气后设置透明度:

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

我们锚定PopupWindow的组件不需要是透明的,即使它可能是一个布局。

不需要设置PopupWindow的背景:

<击> this.setBackgroundDrawable(null);

不需要设置Alpha值:

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

如果是PNG,则设置图像背景:

<击> imageView.setBackgroundColor(android.R.color.transparent);

不需要在其xml定义中设置图像背景:

<击>

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

<击>

谢谢...