更换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>
  • 2
    点赞
  • 2
    收藏
    觉得还不错? 一键收藏
  • 2
    评论
作者Flying-Einstein,源码LaunchScreenTest,常见的几种启动风格 静态类型 :微信 片不变,有动画效果 :京东 随着节日或者时间动态更换的 :百度云、网易公开课 网易公开课 注意:笔者说的启动并不是广告页,启动是不接受点击事件的,但是广告页是接受点击事件的,点击后一般会跳转到网页。如下: 这几种风格的启动怎么实现的? 静态类型 :这种比较简单,开发者可以使用LaunchImage和LaunchScreen.storyboard的任何一种方式添加所需的正确格式的片不变,有动画效果 :这种方式,笔者认为在实现方式上和第三种是一样的,就不在赘述,感兴趣的读者在看完第三种实现方式后,可以尝试去做。 随着节日或者时间动态更换的 :这种方式,也就是笔者今天着重要讲的,原理及实现方式。 像百度云或者网易公开课一样动态更换APP启动原理 其实你看到的不是一张片 :读者仔细观察就会发现,使用这种方式的的启动,用的不是一张片,而是两张。我们拿百度云来举例: 可以看到,两张片的区别就是,底部都是一样的,而第一张上半部分是空白。其实,网易公开课和支付宝德也是如此。第一张片是内容兼容性很强的片,就是一个版权说明加上一个类似于app logo的样式,上面空白部分可以根据节日的不同,调整展示的样式 这两张片还有其他的不同吗 :因为笔者经常使用这几款app,发现有的时候第二张片是不显示的,显示完第一张片直接跳到app主页了。笔者认为,第一张片就是放在[LaunchImage或者LaunchScreen.xib中的片,是不会改变的。第二张片则是从网上获取的,而且可以根据是否获取到相应的片网址决定第二张片能否显示。 为什么要这么做 :有的读者可能有疑问,为什么要这么做?难道不可以直接更换掉第一张启动吗,或者不显示第一张只显示第二张?答案:NO! 更换第一张片?抱歉,更换不了,如果你使用的是LaunchScreen.xib或者LaunchScreen.Storyboard,只要你的app启动过,那张片就永远的缓存在app里了,以后每次启动都会出现。 网络请求有延时,如果不放第一张片,只放第二张片,会出现短暂的黑屏。 从产品的角度来讲,也不合理。比如:植树节的时候我展示了和环保有关的内容,如果过了植树节,那么正常情况下我不展示该内容就可以了,后台不返回相应的片网址,展示完第一张片就ok了。如果没有第一张片,那么过了植树节,我就需要把网址更换,需要一个下载片的过程,从用户体验来讲也不好,时间延迟也会浪费流量。
### 回答1: 在Android Studio中更换应用程序图标的步骤如下: 1.打开Android Studio项目 2.在工程目录下找到res文件夹 3.在res文件夹中找到mipmap文件夹,里面存放着应用程序图标 4.替换mipmap文件夹中的图标文件,并确保文件名不变 5.重新运行应用程序,检查新图标是否生效 ### 回答2: 在Android应用的设计中,图标是非常重要的一部分,因为它是人们第一眼看到应用时接触到的东西,也是应用的品牌形象的一部分。因此,在开发Android应用时,我们需要更换app图标以适应不同的需求。 下面是更换Android Studio应用图标的步骤: 1. 打开Android Studio应用,选择我们要更换图标的应用项目。 2. 在项目结构中选择“app”。 3. 选择“res”文件夹,并在其中找到“drawable”文件夹。这个文件夹存储了我们的应用图标。 4. 在该文件夹中选择图标,右键单击图标并选择“复制”。 5. 在这个文件夹的同一级目录下创建一个新的文件夹,我们可以将其命名为“new_logo”或任何我们喜欢的名称。 6. 将刚刚复制的图标粘贴到这个新的文件夹中。 7. 在“res”文件夹中,进入“mipmap”文件夹。 8. 在这个文件夹中,找到我们要更改的应用图标。它的文件名为“ic_launcher”。 9. 单击“ic_launcher”文件,并选择“Refactor”,点击“Rename”。 10. 为了清楚地描述新图标,我们可以将文件名重命名为“ic_launcher_new”。 11. 在我们的新应用图标中,我们可以更改图标的颜色和大小。 12. 更改完毕后,保存文件并重新生成应用程序即可。 总之,更换Android应用图标非常简单。在Android Studio中,只需按照上述步骤更改即可。注意我们平时设计图标时,需要考虑到应用的主旨定位和色彩搭配,使应用图标更具辨识度和美观度。 ### 回答3: Android Studio是一款非常流行的用于开发Android应用的集成开发环境,它提供了丰富的工具和功能,可以帮助开发者轻松创建高质量的应用。当我们开发完成一个应用之后,想要更换我们默认的app图标,该如何操作?下面我将介绍一下具体的步骤。 首先,打开Android Studio,进入项目文件夹,找到res文件夹,接着点击右键,选择New->Image Asset。这时Android Studio会弹出一个新窗口,里面包含了许多选项,我们选择Launcher Icons这个选项卡。在这里,我们可以自由选择想要的片资源,并且可以预览片。需要注意的是,片资源必须是正方形的,大小在512像素以上。接着,点击Next按钮,进入配置页面,可以输入应用的名称和支持的画质,然后点击Finish。 此时,你会发现res文件夹下新增了一个mipmap文件夹,里面包含了你刚才导入的片资源。你可以通过修改这些片资源来更换你的应用图标。具体来说,你可以替换mipmap-hdpi文件夹下的ic_launcher.png文件,这是应用在高密度屏幕上的图标。同时,你还可以替换mipmap-xhdpi、mipmap-xxhdpi、mipmap-xxxhdpi下的相应文件,这是应用在其他屏幕上的图标。 最后,重新编译应用即可看到更改后的app图标。总的来说,Android Studio更换app图标非常简单,只需要按照上述步骤进行操作即可。如果你想为自己的应用设计独特的图标,可以通过自定义片资源来实现。只要注意片的大小和比例,一定可以创建出令人满意的应用图标

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论 2
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值