无法在android中设置完全透明的背景

时间:2016-09-24 12:33:21

标签: java android android-activity dialog transparency

这是我用过的代码。我的MainActivity类

public class MainActivity extends AppCompatActivity {

@Override
public void onCreate(Bundle savedInstanceState) {
    super.onCreate(savedInstanceState);
    setContentView(R.layout.activity_main);
}

public void broadcastIntent(View view){
    AlertDialog.Builder dialogBuilder = new AlertDialog.Builder(MainActivity.this);
    LayoutInflater inflater = MainActivity.this.getLayoutInflater();
    View dialogView = inflater.inflate(R.layout.demo, null);
    dialogBuilder.setView(dialogView);
    final AlertDialog alertDialog = dialogBuilder.create();
    Window window = alertDialog.getWindow();
    window.setLayout(WindowManager.LayoutParams.WRAP_CONTENT, WindowManager.LayoutParams.WRAP_CONTENT);
    window.setGravity(Gravity.CENTER);
    alertDialog.show();
  } 
 }

我的对话框布局

<?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:gravity="center"
android:background="#00000000"
android:orientation="vertical">

<RelativeLayout
    android:layout_width="150dp"
    android:layout_height="100dp"
    android:layout_alignParentTop="true"
    android:layout_centerHorizontal="true">

    <TextView
        android:id="@+id/txtJioMoney"
        android:layout_width="wrap_content"
        android:layout_height="wrap_content"
        android:layout_marginTop="15dp"
        android:text="First"
        android:textColor="#3F51B5"
        android:textSize="18sp"
        android:layout_alignParentTop="true"
        android:layout_centerHorizontal="true" />

    <TextView
        android:layout_width="wrap_content"
        android:layout_height="wrap_content"
        android:text="Second"
        android:textColor="#3F51B5"
        android:id="@+id/txtCashOnPick"
        android:gravity="center"
        android:textSize="18sp"
        android:layout_marginBottom="20dp"
        android:layout_alignParentBottom="true"
        android:layout_centerHorizontal="true" />

      </RelativeLayout>
   </RelativeLayout>

我的主要布局

<RelativeLayout xmlns:android="http://schemas.android.com/apk/res/android"
xmlns:tools="http://schemas.android.com/tools" android:layout_width="match_parent"
android:layout_height="match_parent" android:paddingLeft="@dimen/activity_horizontal_margin"
android:paddingRight="@dimen/activity_horizontal_margin"
android:paddingTop="@dimen/activity_vertical_margin"
android:paddingBottom="@dimen/activity_vertical_margin" tools:context=".MainActivity">


<Button
    android:layout_width="wrap_content"
    android:layout_height="wrap_content"
    android:id="@+id/button2"
    android:text="Broadcast Intent"
    android:onClick="broadcastIntent"
    android:background="@color/colorPrimary"
    android:layout_below="@+id/textView1"
    android:textColor="@android:color/white"
    android:padding="10dp"
    android:layout_centerHorizontal="true"
    android:layout_marginTop="103dp" />

  </RelativeLayout>

我正在使用AppCompatActivity,所以我无法在清单中使用@android:style / Theme.Translucent。我希望我的对话框完全透明,我不需要那个白色背景。

sample Screenshot

1 个答案:

答案 0 :(得分:2)

此问题有很多答案,下次尝试在发布问题之前搜索stackoverflow或google。

set Transparent background to alertdialog in android

Dialog with transparent background in Android

android AlertDialog with transparent background

此外,您还可以尝试以编程方式在Relative布局上使用.setAlpha(0),而不是使用xml样式。