Android如何动态切换APP图标和AppName

记录一下更换APP图标和AppName,说是动态,也不太动态,需要提前配置好打进去APK的

1、第一步 在AndroidManifest 配置

<activity
    android:icon="@drawable/text_icon"
    android:label="Text name"
    android:name=".ui.activity.TextActivity"
    android:launchMode="singleTop"
    android:screenOrientation="portrait"
    android:windowSoftInputMode="adjustPan">
    <intent-filter>
        <action android:name="android.intent.action.MAIN" />

        <category android:name="android.intent.category.LAUNCHER" />
    </intent-filter>
</activity>
<activity
    android:name=".ui.activity.Text2Activity"
    android:launchMode="singleTop"
    android:screenOrientation="portrait" />

2、第二步 创建TextActivity并继承默认的HomeActivity:

public class TextActivity extends HomeActivity {

}

3、第三步 切换代码:

public class Text2Activity extends BaseActivity implements View.OnClickListener {

    @Override
    protected int layoutId() {
        return R.layout.activity_text;
    }

    @Override
    protected void initData(Bundle savedInstanceState) {
        findViewById(R.id.icon1).setOnClickListener(this);
        findViewById(R.id.icon2).setOnClickListener(this);
    }

    @Override
    public void onClick(View v) {
        if (v.getId() == R.id.icon1) {
            changeIcon(true);
        } else if (v.getId() == R.id.icon2) {
            changeIcon(false);
        }
    }


    /**
     * 修改图标和名称的方法
     *
     * @param enable
     */
    public void changeIcon(boolean enable) {
        PackageManager pm = getApplicationContext().getPackageManager();

        if (enable) {
            //显示TextActivity图标
            pm.setComponentEnabledSetting(new ComponentName(getBaseContext(), getPackageName+".TextActivity"),
                    PackageManager.COMPONENT_ENABLED_STATE_ENABLED,
                    PackageManager.DONT_KILL_APP);

            //去掉HomeActivity图标
            pm.setComponentEnabledSetting(new ComponentName(getBaseContext(), getPackageName+".HomeActivity "),
                    PackageManager.COMPONENT_ENABLED_STATE_DISABLED,
                    PackageManager.DONT_KILL_APP);
            Log.d("TAG", "换TextActivity的图标");
        } else {
            //显示HomeActivity图标
            pm.setComponentEnabledSetting(new ComponentName(getBaseContext(), getPackageName+".HomeActivity "),
                    PackageManager.COMPONENT_ENABLED_STATE_ENABLED,
                    PackageManager.DONT_KILL_APP);
            //去掉TextActivity图标
            pm.setComponentEnabledSetting(new ComponentName(getBaseContext(), getPackageName+".TextActivity"),
                    PackageManager.COMPONENT_ENABLED_STATE_DISABLED,
                    PackageManager.DONT_KILL_APP);

            Log.d("TAG", "换HomeActivity的图标");
        }
    }
}

//如果想要app有多个图标,只需要新建几个activity页面并添加android:documentLaunchMode="intoExisting"    属性即可。

  • 1
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

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

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值