Android 无法为清单中的应用程序和启动器活动设置不同的图标/标签

Android 无法为清单中的应用程序和启动器活动设置不同的图标/标签,android,android-layout,android-manifest,Android,Android Layout,Android Manifest,我知道以前有人问过这个问题,但在所有这些问题中,答案都是从活动的onCreate方法设置它。 我不想在onCreate方法中执行此操作,因此我对清单文件执行了此操作,但没有效果:- <application android:allowBackup="true" android:icon="@drawable/ic_launcher_screen" android:label="@string/app_name" android

我知道以前有人问过这个问题,但在所有这些问题中,答案都是从活动的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>

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

回答:

删除android活动中的图标

额外信息:

android运行时将考虑使用activity launcher的主要活动

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



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

我也遇到了同样的问题,我用一个非常奇怪但简单的解决方案解决了这个问题

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

2-将此活动设置为应用程序的主启动活动。(从主屏幕活动中删除
标记)

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

4-现在在您的
启动器活动中
onCreate()
不要做任何事情,只需使用意图启动主屏幕活动并完成此活动

protected void onCreate(Bundle savedInstanceState) {
    super.onCreate(savedInstanceState);
    Intent intent = new Intent(this, HomeScreen.class);
    startActivity(intent);
    finish();
}
finish()是必需的,因此当您按下主屏幕上的后退按钮时,应用程序将关闭

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

您的清单应该如下所示:

<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>


如果您只需要有一个不同于应用程序图标的活动操作栏图标,您可以使用“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>

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


您的“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>


很抱歉,我没有收到。如果我有两个启动器活动,它将如何解决我的问题?添加额外的活动不是解决方案。。。只是我把你弄糊涂了我想@新建此处,只需删除活动中的图标属性。但我希望我的应用程序和主要活动具有不同的图标。根据你的建议,我最终会得到相同的应用程序图标和活动图标。谢谢你的帮助。还有其他建议吗?但是你想为这两个图标都换一个吗。。我很好奇,因为我的图标是蓝色+红色的文本,背景是透明的,在动作栏中看起来很奇妙,但在主屏幕上由于墙纸的缘故无法阅读。因此,我为应用程序图标设置了白色背景,为操作栏设置了没有背景的原始图标。请阅读本文,这是答案[问题][1][1]:最简单的解决方案,不会增加太多开销。工作得很好!这一点也不奇怪。事实上,这是我在面对同样的情况后想到的第一个想法。
<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>
<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>