我有以下代码:
View child = getLayoutInflater().inflate(R.layout.contextual_menu_lp_activity, null)
child.setBackgroundColor(getResources().getColor(R.color.transparent));
child.setBackgroundDrawable(new BitmapDrawable());
popup = new PopupWindow(MapViewActivity.this);
popup.setContentView(child);
popup.showAtLocation(MapViewActivity.mapView, Gravity.CENTER, 10,10);
popup.setBackgroundDrawable(new BitmapDrawable());
child.measure(View.MeasureSpec.UNSPECIFIED, View.MeasureSpec.UNSPECIFIED);
popup.update(50, 50,child.getMeasuredWidth(), child.getMeasuredHeight());
正如您所看到的,我设置了视图,并拼命尝试使其背景透明。
在xml布局上,所有的relativelayouts都有一个透明的颜色背景。
这是xml:
<?xml version="1.0" encoding="utf-8"?>
<RelativeLayout
xmlns:android="http://schemas.android.com/apk/res/android"
android:layout_width="match_parent"
android:layout_height="match_parent"
android:orientation="vertical"
android:background="@color/transparent" >
<RelativeLayout
android:id="@+id/ivDialogPopup"
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:layout_centerInParent="true"
android:paddingBottom="40dp"
android:background="@drawable/new_pop_up_bk" >
<Button
android:id="@+id/btLivePolice"
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:layout_toLeftOf="@+id/btSaveParkingLocation"
android:layout_marginRight="4dp"
android:layout_marginTop="8dp"
android:background="@drawable/live_police_button_popup" />
<Button
android:id="@+id/btSaveParkingLocation"
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:layout_alignParentTop="true"
android:layout_marginTop="8dp"
android:layout_centerHorizontal="true"
android:background="@drawable/parking_location_button" />
<Button
android:id="@+id/btGetDirections"
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:layout_marginLeft="4dp"
android:layout_marginTop="8dp"
android:layout_toRightOf="@+id/btSaveParkingLocation"
android:background="@drawable/directions_button" />
尽管如此,视图的父布局(相对布局)仍然具有灰色背景。 (以前,我使用的是普通的活动类,在清单中我有一个透明的主题 - 最重要的部分是将这个android:windowBackground设置为透明 - 我必须根据其他原因更改它。)
感谢任何帮助。
答案 0 :(得分:17)
您还可以将背景设置为透明,如下所示。这为我工作。
popup.setBackgroundDrawable(new ColorDrawable(android.graphics.Color.TRANSPARENT));
答案 1 :(得分:5)
你要做的是创建一个透明的png(例如clear.png)文件并将其放在drawables文件夹中,然后调用
yourPopUp.setBackgroundDrawable(getResources().getDrawable(R.drawable.clear));
这样弹出窗口仍然是不可接受的,如果你尝试使用null,则不是这种情况。
答案 2 :(得分:0)
尝试使用@android:style/Theme.Translucent
代替RelativeLayout
,而不是更改background
颜色。
答案 3 :(得分:0)
使用android:background =“@ null”