透明儿童活动有黑色背景

时间:2012-02-07 17:48:12

标签: android transparent

我正在与这一小时的战斗,我无法弄清楚发生了什么。我有一个带有几个标签的应用。此选项卡由TabGroupActivity管理。 在其中一个标签中,我必须开始一个透明的活动。如果我正常启动(使用startActivity),它看起来不错,但显然,标签栏不可点击。由于透明度而不可见“可见”。因此,为了使标签栏可以使用,我必须使用“startChildActivity”,这是一种定义为浏览特定选项卡内活动的方法。但是,当我这样做时,会显示活动,但背景是黑色的,而不是透明的。 我尝试了一切,但我看不出如何解决它。 下面是我认为问题可以解决的代码,因为它是启动活动和子活动之间的唯一区别。

在“主要”活动中,我加载了所有标签,每个标签都有一个与之相关的活动:

    public class PreShowTabGroupActivity extends TabGroupActivity {
        @Override
        public void onCreate(Bundle savedInstanceState) {
          super.onCreate(savedInstanceState);
          startChildActivity("PreshowActivity", new Intent(this, PreshowActivity.class));
        }
    }

应该透明的活动是由“PreshowActivity”打开的活动。

以下是TabGroupActivity类中的startChildActivity方法。我试图透明,没有运气。

    public void startChildActivity(String Id, Intent intent) {
    Window window = getLocalActivityManager().startActivity(Id,intent.addFlags(Intent.FLAG_ACTIVITY_CLEAR_TOP));

    if (window != null) {

        //window.set
        mIdList.add(Id);
        navController.notifyActivityChange();           
        setContentView(window.getDecorView());
        window.getAttributes().alpha = 0;   
        window.getDecorView().setBackgroundColor(Color.TRANSPARENT);
        window.setBackgroundDrawable(new ColorDrawable(Color.TRANSPARENT));

    }
}

奇怪的是,如果我放置一个彩色背景(如RED或其他),背景会变为该颜色。但如果我将其配置为透明,则背景为黑色。

在我的Manifest中,我尝试了透明和半透明主题,但没有运气。

如果你能帮助我,我会完全欣赏它。

谢谢!

1 个答案:

答案 0 :(得分:0)

我很抱歉在这里使用“猜测”这个词,但这更像是一个受过教育的“猜测”。 我有一个类似的问题,我无法弄清楚为什么黑色背景显示为透明。如果我将那种黑色改为RED,那么它会显示红色。 这与称为格式的窗口属性有关。 如果你改变这个windo的属性:

window.getAttributes()。format = PixelFormat.TRANSLUCENT;

这意味着黑色背景实际上是透明的。 现在,关于你的问题,我的“有根据的猜测”是startChildActivity获取其父窗口的窗口属性,而startActivity创建一个具有不同属性集的窗口(可能是TRANSLUCENT)。

相关问题