4

我知道这个问题之前已经被问过,但在所有这些问题中,答案都是从活动的 onCreate 方法中设置它。我不想在我的 onCreate 方法中执行此操作,所以我对清单文件执行此操作,但无济于事:-

<application
        android:allowBackup="true"
        android:icon="@drawable/ic_launcher_screen"
        android:label="@string/app_name"
        android:theme="@android:style/Theme.Holo.Light"
         >
        <activity
            android:name="com.iws.unify.HomeScreen"
            android:label="@string/nullstring"
            android:icon="@drawable/ic_launcher"
             >
            <intent-filter>
                <action android:name="android.intent.action.MAIN" />

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

出于某种原因,我在活动中设置的任何图标/标签都会覆盖应用程序标签中的图标/标签,这很烦人。请帮忙。

4

4 回答 4

15

如果您只需要一个与应用程序图标不同的活动操作栏图标,您可以使用“android:logo”属性覆盖它:

    <activity
        android:name="com.iws.unify.HomeScreen"
        android:label="@string/nullstring"
        android:logo="@drawable/ic_launcher">
        <intent-filter>
            <action android:name="android.intent.action.MAIN" />

            <category android:name="android.intent.category.LAUNCHER" />
        </intent-filter>
    </activity>
于 2013-08-28T05:55:57.427 回答
4

我有同样的问题,我用一个非常奇怪但简单的解决方案解决了。

1-创建一个新活动并调用它LauncherActivity。(将此活动的图标和标签设置为您希望显示为应用程序图标/标签的内容)

2-将此活动设置为您的应用程序的主要和启动器活动。(从您的 HomeScreen 活动中删除<intent-filter>标签)

3-将此活动的主题设置为android:theme="@android:style/Theme.Translucent"

4-现在你LauncherActivity onCreate()什么都不做,只需使用意图启动 HomeScreen 活动并完成此活动。

protected void onCreate(Bundle savedInstanceState) {
    super.onCreate(savedInstanceState);
    Intent intent = new Intent(this, HomeScreen.class);
    startActivity(intent);
    finish();
}

finish()是必需的,因此当您按下 HomeScreen 中的后退按钮时,应用程序将关闭。

现在您的应用程序图标和标签将与您的主屏幕图标和标签不同

您的清单应如下所示:

<application
    android:allowBackup="true"
    android:theme="@android:style/Theme.Holo.Light"
     >
    <activity
        android:name="com.iws.unify.HomeScreen"
        android:label="@string/nullstring"
        android:icon="@drawable/ic_launcher"
         >
    </activity>

    <activity
        android:name="com.iws.unify.LauncherActivity"
        android:icon="@drawable/ic_launcher_screen"
        android:label="@string/app_name"
        android:theme="@android:style/Theme.Translucent" >
        <intent-filter>
            <action android:name="android.intent.action.MAIN" />

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

于 2013-06-19T15:24:39.883 回答
1

回答:

删除 android 活动中的图标。

额外信息:

带有活动启动器的主要活动将由 android 运行时考虑。

例如:如果您在两个活动“a”和“b”中声明以下代码:

        <intent-filter>
            <action android:name="android.intent.action.MAIN" />

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

然后您的应用程序将有两个启动器图标“a”和“b”。

于 2013-06-19T13:34:09.607 回答
0

您还可以使用“活动别名”:

<application
    android:allowBackup="true"
    android:icon="@drawable/ic_launcher"
    android:label="@string/app_name"
    android:theme="@android:style/Theme.Holo.Light">

    <activity
        android:name="com.iws.unify.HomeScreen"
        android:label="@string/nullstring"
        android:exported="true" />             

    <activity-alias
        android:name=".LaucherActivityAlias"
        android:targetActivity="com.iws.unity.HomeScreen"
        android:icon="@drawable/ic_launcher_screen">
        <intent-filter>
            <action android:name="android.intent.action.MAIN" />
            <category android:name="android.intent.category.LAUNCHER" />
        </intent-filter>
    </activity-alias>

</application>

您的“playstore”图标将是应用程序节点中指定的图标,因此您也可以根据需要执行此操作:

<application
    android:allowBackup="true"
    android:icon="@drawable/ic_launcher_screen"
    android:label="@string/app_name"
    android:theme="@android:style/Theme.Holo.Light">

    <activity
        android:name="com.iws.unify.HomeScreen"
        android:label="@string/nullstring"
        android:icon="@drawable/ic_launcher"
        android:exported="true" />             

    <activity-alias
        android:name=".LaucherActivityAlias"
        android:targetActivity="com.iws.unity.HomeScreen"
        android:icon="@drawable/ic_launcher_screen">
        <intent-filter>
        <action android:name="android.intent.action.MAIN" />
             <category android:name="android.intent.category.LAUNCHER" />
        </intent-filter>
    </activity-alias>

</application>
于 2015-08-23T10:07:25.550 回答