仅设置活动背景而不是操作栏背景

时间:2015-01-10 17:35:00

标签: android

我想将活动的背景设置为图像而不将ActionBar背景设置为同一图像。我开始使用带有EditText,Button和ActionBar的“Hello,world”应用程序,并添加了以下样式......

<resources>
<!-- Base application theme. -->
<style name="AppTheme" parent="Theme.AppCompat.Light.DarkActionBar">
    <item name="android:actionBarStyle">@style/MyActionBarTheme</item>
    <item name="android:windowActionBarOverlay">true</item>
    <item name="windowActionBarOverlay">true</item>
    <item name="android:background">@drawable/bg20140804_090625_640_960</item>
</style>
<style name="MyActionBarTheme" parent="Theme.AppCompat.Light.DarkActionBar">
    <item name="android:background">@android:color/transparent</item>
</style>

</resources>

这是应用程序清单......

<uses-sdk android:minSdkVersion="11" />

<application
    android:allowBackup="true"
    android:icon="@drawable/ic_launcher"
    android:label="@string/app_name"
    android:theme="@style/AppTheme" >
    <activity
        android:name=".MainActivity"
        android:label="@string/app_name">
        <intent-filter>
            <action android:name="android.intent.action.MAIN" />
            <category android:name="android.intent.category.LAUNCHER" />
        </intent-filter>
    </activity>
    <activity
        android:name=".DisplayMessageActivity"
        android:label="@string/title_activity_display_message"
        android:parentActivityName=".MainActivity" >
        <meta-data
            android:name="android.support.PARENT_ACTIVITY"
            android:value="com.company.android.mysecondapplication.MainActivity" />
    </activity>
</application>

我看到的问题是背景图像显示在ActionBar中(失真)。我希望ActionBar是半透明的,并且要显示活动的背景。

这就是它的样子,请注意ActionBar背景。另外请注意,正常情况下图标会向左移动(即没有自定义样式),它们会在右侧。

enter image description here

最后,如果您将样式更改为以下内容,则应用程序看起来就像教程一样。

<resources>
<!-- Base application theme. -->
<style name="AppTheme" parent="Theme.AppCompat.Light.DarkActionBar">
</style>

</resources>

由于

2 个答案:

答案 0 :(得分:2)

将背景图像设置为活动的布局而不是主题,这将导致只有活动将图像作为背景。

<LinearLayout xmlns:android="http://schemas.android.com/apk/res/android"
          android:layout_width="match_parent"
          android:layout_height="match_parent"
          android:orientation="vertical"
          android:background="@drawable/bg20140804_090625_640_960" >

</LinearLayout>

答案 1 :(得分:2)

更改

    <item name="android:background">@color/your_color</item>

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

当然,您可以使用@drawable/your_drawable