2011-05-26 166 views
3

我想顯示tranparent圖像作爲彈出窗口。對於我已經定製了popupwindow按照我的需要和膨脹在popupwindow initview相對佈局()。Android的透明圖片不是透明

在這相對佈局我添加透明圖像,但是當我運行應用程序,它的矩形框內部的橢圓形的圖像,因此代替transparancy我可以看到圍繞橢圓形圖像的灰度的顏色。

我沒有比任何popupwindow選項,因爲我應該在背景屏幕中使用的控件。

我已經嘗試設置透明樣式此相對佈局沉綿它不工作。

任何一個可以告訴我如何做到這一點

有在android系統popupwindow的錯誤。

在此先感謝。

回答

1

我們找到了解決方案 - 在定製彈出窗口時,我們必須將背景設置爲空。 setBackgroundDrawable(NULL);然後它工作。

+1

將背景設置爲空將導致onTouch偵聽器停止工作 – ByteMe 2012-05-17 21:08:28

+0

ByteMe是正確的。如果您正在使用它,則會導致onTouch偵聽器停止工作。 – 2012-05-21 19:43:01

+0

嘗試添加此pw。setBackgroundDrawable(new BitmapDrawable(getResources())); – 2012-05-21 19:58:02

1

使用在彈出的Android ..主題,如果它是一個活動聲明它清單。

機器人:主題= 「@安卓風格/ Theme.Translucent」

編輯 設置主題對話這樣

mDialogTax =新的對話框(mContext, android.R.style.Theme_Translucent_NoTitleBar_Fullscreen);

+0

感謝您的回覆。我已經嘗試過了。 – Padma 2011-05-26 10:22:41

0

洛朗,

我們需要透明度設置爲我們的觀點後,我們誇大它:

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

,這是我們錨PopupWindow該組件不要求即使透明可能是一個佈局。

設置不需要PopupWindow的背景:

this.setBackgroundDrawable(null);

設置不是必需的α值:

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

設置圖像背景,如果它是一個PNG不要求:

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

設置在其圖像背景的IS不需要XML定義:

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

謝謝...

+0

嗨,感謝您的回覆,起初我試圖將該圖片的背景設置爲透明,但它沒有奏效。讓我解釋一下這個場景。我必須在屏幕上顯示一個圖像,圖像和屏幕都應該是可點擊的,所以我使用了彈出窗口。我嘗試過在佈局和樣式上使用透明背景,但都沒有工作。然後在我的彈出窗口的initView中,我將背景設置爲null,然後工作。 – Padma 2011-08-31 10:39:31

+0

Kindly Ravindranath Akila請顯示您的代碼,在哪裏可以繪製爲空(哪個類),即時通訊有相同的問題 – Jone 2012-09-10 11:06:20

+0

@RaoAsadUllah,很抱歉,我無法做到這一點,因爲這是很長一段時間後,因爲我做了這個項目,實驗基礎。有機會我刪除它。然而,如果你真的很絕望,讓我知道,我會嘗試從我的舊硬盤上取下它:-) – 2012-11-22 02:28:07

0

有正確的解決方案。問題是popupWindow的背景是在活動的主題風格中定義的。

解決方案:

  1. 定義應用程序或 活動顯示PopupWindow自定義主題。

    • 您可以選擇不同的父主題。
    • 自定義項 「機器人: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" > 
    

的popupWindow將與一個透明的背景上顯示。