使所有视图透明,仅查看主题背景图像

时间:2016-03-24 22:20:29

标签: android background android-theme material

我在Play商店中看到很多使用图像作为背景的现代漂亮应用程序。我决定在我的应用程序中使用此解决方案。我开发了最低API 21 Android 5.0。我为xxhdpi Nexus 5 AVD准备了1920x1080图像。

enter image description here

我使用素材主题。这是我修改过的主题定义xml

<resources>

<!-- Base application theme. -->
<style name="AppTheme" parent="android:Theme.Material.Light">
    <!-- Customize your theme here. -->
    <item name="android:colorPrimary">@color/colorPrimary</item>
    <item name="android:colorPrimaryDark">@color/colorPrimaryDark</item>
    <item name="android:colorAccent">@color/colorAccent</item>
    <item name="android:background">@drawable/parquet</item>
    <item name="android:actionBarStyle">@style/transparentActionBar</item>
    <item name="android:statusBarColor">@android:color/transparent</item>
</style>
<style name="transparentActionBar" parent="android:Widget.Material.Light.ActionBar">
    <item name="android:background">@android:color/transparent</item>
</style>

enter image description here

当我运行应用程序时,我看到每个视图都使用自己的主题图像缩放副本。我的自定义样式'transparentActionBar'对操作栏没有影响。只有状态栏后面我看到像原始图像。是否可以通过XML定义所有视图透明度,以使可见的屏幕背景图像?如果不是,请说明解决此问题的正确方法。

问候。

1 个答案:

答案 0 :(得分:3)

此代码完全符合我的要求

<resources>

<!-- Base application theme. -->
<style name="AppTheme" parent="android:Theme.Material.Light">
    <!-- Customize your theme here. -->
    <item name="android:colorPrimary">@color/colorPrimary</item>
    <item name="android:colorPrimaryDark">@color/colorPrimaryDark</item>
    <item name="android:colorAccent">@color/colorAccent</item>
    <item name="android:statusBarColor">@android:color/transparent</item>
    <item name="android:windowBackground">@drawable/parquet</item>
    <item name="android:actionBarStyle">@style/ActionBarStyle.Transparent</item>
</style>
<style name="ActionBarStyle.Transparent" parent="android:Widget.Material.Light.ActionBar">
    <item name="android:background">@null</item>
</style>

enter image description here