更换APP启动图标和名称

情景

类似于双11等节日,实现app图标的动态更换

效果展示

手机比较慢,见谅-_-!!!

Launcher Icon

实现

1.在manifest文件为MainActivity创建别名

这里将别名设置为不可用,到时候再使用。

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

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

        <!--红色图标-->
        <activity-alias
            android:name="icon1"
            android:enabled="false"
            android:icon="@mipmap/icon_red"
            android:label="@string/app_name_1"
            android:targetActivity=".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="icon2"
            android:enabled="false"
            android:icon="@mipmap/icon_blue"
            android:label="@string/app_name_2"
            android:targetActivity=".MainActivity">
            <intent-filter>
                <action android:name="android.intent.action.MAIN" />

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

2.获取ComponentName和PackageManager

    private ComponentName mDefault;
    private ComponentName mRed;
    private ComponentName mBlue;
    private PackageManager mPackageManager;

    @Override
    protected void onCreate(Bundle savedInstanceState) {
        super.onCreate(savedInstanceState);
        setContentView(R.layout.activity_main);

        mDefault = new ComponentName(getBaseContext(), "com.hftsoft.changelaunchericon.MainActivity");
        mRed = new ComponentName(getBaseContext(), "com.hftsoft.changelaunchericon.icon1");
        mBlue = new ComponentName(getBaseContext(), "com.hftsoft.changelaunchericon.icon2");
        mPackageManager = getApplicationContext().getPackageManager();
    }

3.动态的配置启动图标

    /**
     * 启用组件
     *
     * @author fengzhen
     * @version v1.0, 2017/8/1 14:46
     */
    private void enableComponent(ComponentName componentName) {
        mPackageManager.setComponentEnabledSetting(
                componentName,
                PackageManager.COMPONENT_ENABLED_STATE_ENABLED,
                PackageManager.DONT_KILL_APP);
    }

    /**
     * 停用组件
     *
     * @author fengzhen
     * @version v1.0, 2017/8/1 14:46
     */
    private void disableComponent(ComponentName componentName) {
        mPackageManager.setComponentEnabledSetting(
                componentName,
                PackageManager.COMPONENT_ENABLED_STATE_DISABLED,
                PackageManager.DONT_KILL_APP);
    }

    /**
     * 选择默认的启动图标
     *
     * @author fengzhen
     * @version v1.0, 2017/8/1 14:40
     */
    public void choseDefault(View view) {
        enableComponent(mDefault);
        disableComponent(mRed);
        disableComponent(mBlue);
    }

    /**
     * 选择红色的启动图标
     *
     * @author fengzhen
     * @version v1.0, 2017/8/1 14:40
     */
    public void choseRed(View view) {
        enableComponent(mRed);
        disableComponent(mDefault);
        disableComponent(mBlue);
    }

    /**
     * 选择蓝色的启动图标
     *
     * @author fengzhen
     * @version v1.0, 2017/8/1 14:40
     */
    public void choseBlue(View view) {
        enableComponent(mBlue);
        disableComponent(mDefault);
        disableComponent(mRed);
    }

4.简单的布局文件

<?xml version="1.0" encoding="utf-8"?>
<LinearLayout xmlns:android="http://schemas.android.com/apk/res/android"
    xmlns:tools="http://schemas.android.com/tools"
    android:id="@+id/activity_main"
    android:layout_width="match_parent"
    android:layout_height="match_parent"
    android:orientation="vertical"
    android:gravity="center"
    tools:context="com.hftsoft.changelaunchericon.MainActivity">

    <Button
        android:text="默认图标"
        android:onClick="choseDefault"
        android:layout_width="wrap_content"
        android:layout_height="wrap_content" />

    <Button
        android:text="红色图标"
        android:onClick="choseRed"
        android:layout_width="wrap_content"
        android:layout_height="wrap_content" />

    <Button
        android:text="蓝色图标"
        android:onClick="choseBlue"
        android:layout_width="wrap_content"
        android:layout_height="wrap_content" />
</LinearLayout>
<think>好的,用户想知道如何在手机应用程序中修改应用图标名称。首先,我需要回忆一下之前系统指令里提到的几个引用内容。引用1到4分别提到了AndroidAndroid Studio、OpenHarmony以及Qt开发中修改应用图标名称的方法。不过用户问的是移动应用,所以可能主要关注AndroidOpenHarmony。 首先,用户可能是一个开发者,或者只是想个性化自己的手机应用。如果是开发者,需要修改自己开发的应用的图标名称,那么需要按照开发环境的步骤来操作,比如在Android Studio中修改资源文件清单文件。如果是普通用户想修改已安装应用的图标名称,可能需要使用第三方启动器或者应用程序,这部分可能需要补充说明,但根据提供的引用,可能没有相关信息,所以可能需要根据现有引用内容来回答。 接下来,我需要整理各个引用中的信息。引用1提到无需源代码修改Android应用图标,但具体方法不明确,可能是指使用第三方工具。引用2详细说明了在Android Studio中修改图标名称的步骤,包括替换图片资源修改AndroidManifest.xml。引用3是关于OpenHarmony的应用开发,步骤类似,修改config.json图标资源。引用4涉及Qt开发,可能移动应用关系不大,但可以稍微提一下。 用户的问题可能包括两种情况:作为开发者如何修改自己应用的图标名称,或者作为普通用户如何修改已安装应用的图标。但根据引用内容,提供的资料主要是针对开发者的,所以可能需要集中在开发阶段的修改方法。 需要注意的是,用户的问题可能没有区分这两种情况,所以回答中应该涵盖开发者角度的步骤,并提到普通用户可能需要第三方工具,但引用中没有相关信息,所以可能需要根据已知信息回答,或者建议用户使用启动器。 现在组织回答结构:分平台说明,AndroidOpenHarmony,每个平台下分步骤,引用对应的引用来源。同时可能需要生成相关问题,如性能影响、不同平台的区别等。 确保使用正确的LaTeX格式,但问题中没有涉及数学公式,所以可能不需要。检查是否有需要独立公式的地方,如果没有则忽略。使用中文回答,结构清晰,分点说明,最后生成相关问题。 可能的问题:用户是否拥有应用的源代码?如果是,按开发步骤;如果不是,可能需要其他方法,但引用中只有引用1提到无需源代码,但具体方法没有详细说明,可能无法展开,所以可能需要指出这点,并建议参考第三方工具或启动器。 综上,回答应包括Android开发环境下的修改步骤(引用2)、OpenHarmony的步骤(引用3),以及提到无需源代码的方法可能存在(引用1),但具体步骤可能需要第三方工具。同时生成相关问题,如其他平台的方法、影响、优化等。</think>### 如何修改移动应用的图标名称? #### 一、Android 应用修改方法(开发者角度) 1. **修改应用图标** - 在 Android Studio 项目中,替换 `res/mipmap` 目录下的图标文件(如 `ic_launcher.png`),确保不同分辨率适配[^2]。 - 在 `AndroidManifest.xml` 中更新 `android:icon` 属性指向新图标: ```xml <application android:icon="@mipmap/ic_launcher_new" ...> </application> ``` 2. **修改应用名称** - 编辑 `res/values/strings.xml` 中的 `app_name` 字符串资源: ```xml <string name="app_name">新应用名称</string> ``` - 确认 `AndroidManifest.xml` 中引用了该资源: ```xml <application android:label="@string/app_name" ...> </application> ``` #### 二、OpenHarmony 应用修改方法 1. **修改应用图标** - 替换 `entry/src/main/resources/base/media` 目录下的图标文件(如 `icon.png`)[^3]。 - 在 `config.json` 中更新图标路径: ```json "abilities": [{ "icon": "$media:icon_new", ... }] ``` 2. **修改应用名称** - 编辑 `entry/src/main/resources/base/element/string.json` 中的 `app_name` 字段: ```json "string": [{ "name": "app_name", "value": "新应用名称" }] ``` #### 三、普通用户修改已安装应用的图标(无需开发权限) - 使用第三方启动器(如 Nova Launcher)长按应用图标,选择“编辑”以更换图标显示名称。 - 注意:此方法仅修改主屏幕显示,不影响应用实际属性[^1]。
评论 2
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值