2

我知道有许多主题具有相同的请求,但我无法解决我的应用程序的背景问题。如果我这样写代码:

<LinearLayout xmlns:android="http://schemas.android.com/apk/res/android"
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:layout_gravity="top|center"
android:orientation="vertical"
android:background:"@drawable/wallpaper>

我收到错误 Lint:“可能的过度绘制:根元素绘制背景......

所以我改变了这个:

样式.xml

<style name="AppTheme" parent="@android:style/Theme.Holo">
    <item name="android:windowBackground">@null</item>
</style>

<style name="WallpaperTheme" parent="@style/AppTheme">
    <item name="android:background">@drawable/wallpaper</item>
</style>

清单.xml

<application
    android:icon="@drawable/ic_launcher"
    android:label="@string/app_name"
    android:hardwareAccelerated="true"
    android:allowBackup="true"
    android:theme="@style/AppTheme">
    <activity
        android:name=".Main"
        android:label="@string/title_activity_main"
        android:theme="@style/WallpaperTheme">
        ...
        ...
    </activity>

通过这种方式不再收到错误 Lint 但应用程序的布局错误,例如: 图片 按钮也没有遵循正确的布局......那我该怎么办?

4

2 回答 2

2

我真笨!我这样改代码,不再出现Lint的错误:

样式.xml:

<style name="AppTheme" parent="@android:style/Theme.Holo">
    <item name="android:windowBackground">@null</item>
</style>

清单.xml

<application
        android:icon="@drawable/ic_launcher"
        android:label="@string/app_name"
        android:hardwareAccelerated="true"
        android:allowBackup="true"
        android:theme="@style/AppTheme">
        <activity
            android:name=".Main"
            android:label="@string/title_activity_main">
            ...
            ...
        </activity>

布局.xml

<LinearLayout xmlns:android="http://schemas.android.com/apk/res/android"
   android:layout_width="match_parent"
   android:layout_height="match_parent"
   android:layout_gravity="top"
   android:orientation="vertical"
   android:background="@drawable/wallpaper">
于 2013-11-04T17:30:11.530 回答
0

您真的需要更改应用程序主题吗?在我看来,你只是想改变活动的背景,并将布局背景作为活动背景......你为什么

  1. 更改应用主题?
  2. 改变 windowBackground 而不仅仅是背景?

在这里,您基本上通过将其设置为空装饰视图来更改布局本身的容器/父级。您不需要这个,这就是影响线性布局放置的原因。

于 2013-11-04T12:59:20.920 回答