1

我试图在另一个活动上拥有一个透明的活动,带有淡淡的灰色色调。我能够调用透明活动,但我无法获得灰色色调。请帮我。以下是我的代码。

    <style name="Theme.Transparent">
    <item name="android:windowBackground">@drawable/transparent_background</item>
    <item name="android:windowContentOverlay">@null</item>
    <item name="android:windowNoTitle">true</item>
    <item name="android:windowIsFloating">true</item>
    <item name="android:backgroundDimEnabled">false</item>
</style>
<drawable name="transparent_background">#FFFECA11</drawable>

无论我为可绘制对象提供什么颜色值,它都不会被反映为背景。清单中的定义

    <activity
        android:name=".DisplayHelpActivity"
        android:label="@string/title_activity_display_help" 
        android:theme="@style/Theme.Transparent">
        <intent-filter>
            <action android:name="android.intent.action.MAIN" />
            <category android:name="android.intent.category.INFO" />
        </intent-filter>
    </activity>

你能告诉我 wat 不见了吗?PS请忘记颜色值。它只是随机的,我曾经测试它是否有效。

我也使用了以下内容

    <item name="android:windowBackground">@color/transparent</item>

而不是drawable,在我的color.xml中

    <?xml version="1.0" encoding="utf-8"?>
    <resources>
       <color name="transparent">#80ffeeca</color>
    </resources>

它仍然没有效果。请帮我。

4

2 回答 2

6

我认为将活动放在一起并不是一个好主意。如果您想在正常活动之上显示某些内容,那么使用 aFrameLayout是一个可行的解决方案:

<FrameLayout xmlns:android="http://schemas.android.com/apk/res/android"
    android:layout_width="match_parent"
    android:layout_height="match_parent"
    android:id="@+id/main_layout" >

    <LinearLayout
        android:layout_width="match_parent"
        android:layout_height="match_parent"
        android:background="#ffffffff"
        android:id="@+id/underlying_layout" >

        <!--Put the parts of your normal activity here -->

    </LinearLayout>

    <LinearLayout
        android:layout_width="match_parent"
        android:layout_height="match_parent"
        android:background="#88666666"
        android:id="@+id/top_layout">

        <!--Put the parts of the layout here, 
        what should be on top of your activity-->

    </LinearLayout>
</FrameLayout>

现在如果你想让顶层的东西出现或消失,那么你可以setVisibility()像这样使用 Views 函数:

View topLevelLayout = findViewById(R.id.top_layout);

//make it disappear with all its sub-Views
topLevelLayout.setVisibility(View.INVISIBLE);

//make it appear with all its sub-Views
topLevelLayout.setVisibility(View.VISIBLE);

更新

在此处输入图像描述

于 2012-09-01T19:42:26.897 回答
3

我相信问题在于颜色本身的价值。

#FFFECA11

原因是颜色被分解为四个值,#AARRGGBB。前两个是透明值,通过在前两个值中使用FF,您可以确保它不透明。尝试使用以下值来获得大约 50% 的透明度:

#7FFECA11

有关详细信息,请参阅以下链接:http: //developer.android.com/guide/topics/resources/more-resources.html#Color

于 2012-09-01T19:27:20.480 回答