10

私は次のコードを持っています:

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レイアウトでは、すべての相対レイアウトに透明な色の背景が与えられます。

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をtransparentに設定することでした。別の理由で変更する必要があります)。

どんな助けでも大歓迎です。

4

4 に答える 4

23

以下のように背景を透明にすることもできます。これは私のために働いた。

popup.setBackgroundDrawable(new ColorDrawable(android.graphics.Color.TRANSPARENT));
于 2015-02-02T11:11:43.843 に答える
6

透明なpng(例:clear.png)ファイルを作成し、それをドローアブルフォルダに配置してから、

yourPopUp.setBackgroundDrawable(getResources().getDrawable(R.drawable.clear));

このように、ポップアップはまだ閉じられますが、nullを使おうとするとそうではありません。

于 2014-03-19T02:52:29.560 に答える
0

色を変更@android:style/Theme.TranslucentするRelativeLayout代わりに、を使用してみてください。background

他にもいくつか提案があります。

于 2012-12-19T17:56:01.617 に答える
0

android:background ="@null"を使用する

于 2013-03-23T15:04:59.477 に答える