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

Posted

技术标签:

【中文标题】无法在android中设置背景完全透明【英文标题】:Cannot able to set background fully transparent in android 【发布时间】:2017-02-02 05:39:47 【问题描述】:

这是我使用的代码。我的 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_
android:layout_
android:gravity="center"
android:background="#00000000"
android:orientation="vertical">

<RelativeLayout
    android:layout_
    android:layout_
    android:layout_alignParentTop="true"
    android:layout_centerHorizontal="true">

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

    <TextView
        android:layout_
        android:layout_
        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_
android:layout_ 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_
    android:layout_
    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。我希望我的对话框完全透明,我不需要白色背景。

【问题讨论】:

【参考方案1】:

这个问题已经有很多答案了,下次发帖前先在***或google上搜索一下。

set Transparent background to alertdialog in android

Dialog with transparent background in Android

android AlertDialog with transparent background

此外,除了使用 xml 样式,您还可以尝试以编程方式在相对布局上使用 .setAlpha(0)。

【讨论】:

以上是关于无法在android中设置背景完全透明的主要内容,如果未能解决你的问题,请参考以下文章

在android活动中设置片段的形状和透明度

如何在 Xcode 中设置 UITableView 部分标题渐变(和透明)背景?

Qt 中设置窗体透明度的几种方法

在 IrfanView 中设置透明图像背景

在 OpenGL 中设置透明背景颜色不起作用

如何在 React Native 中设置透明视图的背景颜色