Android:如何在程序中使Activity窗口半透明?

11

有没有一种编程方式可以使Activity窗口半透明?对于我的目的,我不能使用静态XML资源。

我尝试将背景资源设置为半透明颜色,但这只会使背景呈现实心黑色。


你找到任何解决方案了吗?如果有,请分享。 - HemangNirmal
5个回答

15

在您的活动类中编写它

Window window = this.getWindow();
window.setBackgroundDrawable(new ColorDrawable(android.graphics.Color.TRANSPARENT));

它对我没用。但是你可以使用半透明主题android:Theme.Translucent。 - Milos Fec
它能够工作,但只在布局的基础(父视图)上,但对我来说没问题,干得好。 - koceeng
10
将背景完全变成黑色! - ucMedia
在将布局背景设置为透明 android:background="#00FFFFFF" 后,对我很有效。 - Kizito Ikapel

5

在Android 10中,可能需要打开HARDWARE_ACCELERATED才能使此效果生效。 - SDJSK

2
有点晚了,但为了记录...你可以通过编程的方式设置半透明主题,像这样:

@Override
public void onCreate(Bundle savedInstanceState) {
    // Set a Translucent NoTitleBar theme before calling super.onCreate()
    setTheme(android.R.style.Theme_Translucent_NoTitleBar);

    super.onCreate(savedInstanceState);
}

1

API 30 添加了一个setTranslucent方法来实现这个功能:

if (Build.VERSION.SDK_INT >= Build.VERSION_CODES.R) {
    setTranslucent(true)
    window.setBackgroundDrawable(ColorDrawable(Color.TRANSPARENT))
}


网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接