我正在尝试使用透明的活动,使用淡淡的灰色色调,而不是其他活动。我可以调用透明活动,但我无法获得Greyish Tint。请帮我。以下是我的代码。
<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>
无论我为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缺失了吗?
附:请忘记颜色值。我只是随机测试它是否有效。
我也使用了以下内容
<item name="android:windowBackground">@color/transparent</item>
而不是drawable,在我的color.xml中
<?xml version="1.0" encoding="utf-8"?>
<resources>
<color name="transparent">#80ffeeca</color>
</resources>
它仍然没有效果。请帮帮我。
答案 0 :(得分:6)
我认为将活动置于彼此之上并不是一个好主意。如果你想在正常活动之上展示一些东西,那么使用FrameLayout
是一个可行的解决方案:
<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>
现在,如果您想让顶级资料显示或消失,那么您可以像这样使用Views setVisibility()
函数:
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);
答案 1 :(得分:3)
我认为问题在于颜色本身的价值。
#FFFECA11
原因是颜色被分解为四个值,#AARRGGBB。前两个是透明值,在前两个值中使用 FF ,可确保它不透明。尝试使用以下值来获得大约50%的透明度:
#7FFECA11
有关详细信息,请参阅以下链接:http://developer.android.com/guide/topics/resources/more-resources.html#Color