如何为小米Mi手机提供单独的图标?

时间:2015-02-18 10:49:14

标签: android icons

我注意到Xiaomi Mi Phone图标上有iOS'ed。这就是我正在处理的应用程序图标看起来很糟糕的原因。

有没有办法为小米Mi手机提供单独的图标?或者用户是否需要改变自己?

1 个答案:

答案 0 :(得分:0)

您可以检查设备制造商,然后在使用不同图标的活动别名的帮助下,您可以专门为小米手机更改图标。这个过程是这样的 -

首先在您的清单文件中的主要活动声明下创建2个新的活动别名:

<!-- MAIN ACTIVITY -->
    <activity
        android:name="com.example.MainActivity"
        android:label="@string/app_name" >
        <intent-filter>
            <category android:name="android.intent.category.LAUNCHER" />
        </intent-filter>
    </activity>

    <!-- 2 ACTIVITY ALIAS For Main Activity -->
    <activity-alias
        android:name="com.example.MainActivity-Normal"
        android:enabled="true"
        android:icon="@drawable/logo_normal"
        android:label="@string/app_name"
        android:targetActivity="com.example.MainActivity" >
        <intent-filter>
            <action android:name="android.intent.action.MAIN" />

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

    <activity-alias
        android:name="com.example.MainActivity-Xiaomi"
        android:enabled="false"
        android:icon="@drawable/logo_xiaomi"
        android:label="@string/app_name"
        android:targetActivity="com.example.MainActivity" >
        <intent-filter>
            <action android:name="android.intent.action.MAIN" />

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

请注意我已删除该行

<action android:name="android.intent.action.MAIN" />
来自MainActivity声明的

。它只存在于Activity-Alias中。此外,仅启用了第一个活动别名,这是用于普通图标,第二个带有小米图标的活动别名最初被禁用。

现在第二步,打开你的MainActivity.java并在里面创建这个方法:

private void checkForIcon(){
    if(Build.MANUFACTURER.equals("Xiaomi")){
        getPackageManager().setComponentEnabledSetting(
                new ComponentName("com.example", "com.example.MainActivity-Normal"), 
                    PackageManager.COMPONENT_ENABLED_STATE_DISABLED, PackageManager.DONT_KILL_APP);
        getPackageManager().setComponentEnabledSetting(
                new ComponentName("com.example", "com.example.MainActivity-Xiaomi"),
                    PackageManager.COMPONENT_ENABLED_STATE_ENABLED, PackageManager.DONT_KILL_APP);
    }
}

在此之后,只需在MainActivity的OnCreate()方法中调用此方法,即可完成。

一旦应用程序第一次启动,它将检查手机是否由小米制造,如果是,那么它将使用第二个活动别名启用它并禁用第一个(因此2个图标不在&# 39; t出现在手机中。)

确保在任何地方放置正确的软件包名称,并将两组应用程序图标放在您的可绘制文件夹中,并使用在清单文件中指定的名称。