试图在Android中使用holo主题无法正常工作

时间:2012-06-21 01:08:38

标签: java android android-layout android-manifest

我一直在尝试在Android中设置一个全息主题,但我无法让它识别它。有什么想法吗?

发布是我的清单:

<?xml version="1.0" encoding="utf-8"?>
<manifest xmlns:android="http://schemas.android.com/apk/res/android"
    package="com.test.test"
    android:versionCode="1"
    android:versionName="1.0" >

    <uses-sdk android:minSdkVersion="7" android:targetSdkVersion="15"/>

    <application
        android:icon="@drawable/ic_launcher"
        android:label="@string/app_name" android:theme="@android:style/Theme.Holo">
        <activity
            android:name=".TestActivity"
            android:label="@string/app_name" >
            <intent-filter>
                <action android:name="android.intent.action.MAIN" />

                <category android:name="android.intent.category.LAUNCHER" />
            </intent-filter>
        </activity>
    </application>

</manifest>

即使我将minSdkVersion更改为11,它也会在@android:style/Theme.Holo下给出红线。任何想法?

更新

我将行<uses-sdk android:minSdkVersion="7" android:targetSdkVersion="15"/>更改为<uses-sdk android:minSdkVersion="7" android:targetSdkVersion="15"/>,但我仍然遇到同样的错误。

更新2:

这最终导致我的目标api在清单中正确指定,但在项目属性中没有。很奇怪,但现在还好。

3 个答案:

答案 0 :(得分:13)

Eclipse给你一个错误,因为SDK版本7-10不知道Theme.Holo是什么。您需要为两个平台提供单独的样式,以确保在运行时找到正确的样式。

  1. res/values/styles.xml文件中,创建以下样式:

    <?xml version="1.0" encoding="utf-8"?>
    <resources>
        <style name="Theme.MyTheme" parent="@android:style/Theme.Black" />
    </resources>
    
  2. res/values-v11/styles.xml文件中,创建以下样式:

    <?xml version="1.0" encoding="utf-8"?>
    <resources>
        <style name="Theme.MyTheme" parent="@android:style/Theme.Holo" />
    </resources>       
    
  3. 在您的AndroidManifest.xml文件中,为您的应用主题使用以下行:

    android:theme="@style/Theme.MyTheme"
    

答案 1 :(得分:5)

您正在尝试将Holo主题用于API低于Android 4.0,这就是您可以获得红线的原因:

  1. 使用HoloEverywhere项目
  2. 为你最想要的Holo Theme挑选必要的资源 ICS源码并创建您自己的自定义主题/样式 https://github.com/android/platform_frameworks_base/tree/master/core/res
  3. 你也可以尝试使用Android Api 7到10的自定义主题 Api 11及更高的全息主题,请参阅@Alex Lockwood的 答案。

答案 2 :(得分:0)

需要在所有样式文件夹中更新Holo主题。在values文件夹下检查,值-sw600dp,values-sw720dp-land,values-v11和values-v14。关于values-v14的主题覆盖了更高API的所有其他主题。