2012-12-03 161 views
8

enter image description here如何顯示透明背景圖像的彈出窗口?

好傢伙,我想提出我在其中顯示彈出窗口的背景圖像,

背景圖像我設置爲彈出窗口是透明的圖像 一個應用程序,但問題是,當顯示在彈出窗口中的背景圖片不能正常顯示....

雖然它是顯示圖像周圍的角落的黑條帶的透明圖像..

任何人可以幫助我?

PopupDemoActivity.java

包com.demo.popupwindow .;

import android.app.Activity; 
import android.os.Bundle; 
import android.view.Gravity; 
import android.view.View; 
import android.widget.Button; 
import android.widget.FrameLayout; 
import android.widget.LinearLayout.LayoutParams; 
import android.widget.PopupWindow; 

public class PopupDemoActivity extends Activity { 

Button searchMenu, viewOrder; 

PopupWindow popUp; 
LayoutParams params; 
FrameLayout layout; 
// LinearLayout layout; 
boolean click = true; 

@Override 
protected void onCreate(Bundle savedInstanceState) { 
    super.onCreate(savedInstanceState); 
    setContentView(R.layout.popdemodemo); 

    searchMenu = (Button) findViewById(R.id.menu); 
    viewOrder = (Button) findViewById(R.id.order); 
    popUp = new PopupWindow(this); 

    // layout = new LinearLayout(this); 
    layout = new FrameLayout(this); 


    viewOrder.setOnClickListener(new View.OnClickListener() { 

     public void onClick(View v) { 

      if (click) { 
       popUp.showAtLocation(layout, Gravity.TOP | Gravity.RIGHT, 
         0, 0); 
       popUp.update(30, 75, 500, 400); 
       click = false; 
      } else { 
       popUp.dismiss(); 
       click = true; 
      } 

     } 
    }); 

    // popUp.setContentView(layout); 

    params = new LayoutParams(LayoutParams.WRAP_CONTENT, 
      LayoutParams.WRAP_CONTENT); 

    layout.setBackgroundResource(R.drawable.order_back); 
    // layout.setBackgroundColor(Color.TRANSPARENT); 
    popUp.setContentView(layout); 
} 

} 

popupdemo.xml

<?xml version="1.0" encoding="utf-8"?> 
<RelativeLayout xmlns:android="http://schemas.android.com/apk/res/android" 
android:layout_width="fill_parent" 
android:layout_height="fill_parent" 
android:background="@color/white_color" 
android:orientation="vertical" > 

<RelativeLayout 
    android:id="@+id/header_lay" 
    android:layout_width="fill_parent" 
    android:layout_height="wrap_content" 
    android:gravity="center" > 

    <Button 
     android:id="@+id/menu" 
     android:layout_width="200dp" 
     android:layout_height="wrap_content" 
     android:layout_marginLeft="30dp" 
     android:text="Search Menu" 
     android:textColor="@color/white_color" 
     android:textSize="25sp" 
     android:textStyle="bold" /> 

    <Button 
     android:id="@+id/order" 
     android:layout_width="200dp" 
     android:layout_height="wrap_content" 
     android:layout_alignParentRight="true" 
     android:layout_marginRight="30dp" 
     android:text="View Order" 
     android:textColor="@color/white_color" 
     android:textSize="25sp" 
     android:textStyle="bold" /> 
</RelativeLayout> 

+1

安置自己的佈局文件。 – Wenhui

回答

16

Jayesh的背景內容,試試這個:您的彈出式視圖,請的

popUp.setBackgroundDrawable(new ColorDrawable(
      android.graphics.Color.TRANSPARENT)); 
+0

感謝Vijju,它的工作.... :) – Jayesh

+0

這是一個完美的解決方案,因爲它不禁止彈出解除外部點擊 –

+0

你試過這個「popUp.setOutsideTouchable(true/false);」 ? – Vijju

0

在你的XML您要定義彈出窗口的背景

的android:背景= 「@顏色/ white_color」

嘗試此處將背景圖片,而不是運行時間。

機器人:背景= 「@繪製/ order_back」

OR

移動彈出佈局變更上述代碼(popUp.showAtLocation(layout, Gravity.TOP | Gravity.RIGHT,0, 0);前)

+0

謝謝你的回答,但我需要彈出窗口的背景圖像,而不是我爲PopDemoActivity設置的佈局作爲setContentView();我不改變佈局,但顯示彈出窗口,我正在創建新的佈局和設置背景......我不使用現有的背景..... – Jayesh

+0

@Jayesh你找出解決方案? – rana

+0

@rana:請參閱vijju的回答 – Jayesh

10

設置

popUp.setBackgroundDrawable(null); 

它應該做的工作。什麼你得到的背景是某種類型的彈出窗口

+0

感謝您的回覆,其工作.... – Jayesh

+0

其工作...但是當我在彈出窗口外單擊時,它不會被解僱.... – OAEI

+0

你所做的是創建一個透明png (例如清楚。PNG)文件,並將其放置在drawables文件夾中,然後調用popUp.setBackgroundDrawable(R.drawable.clear); – pt123