美文网首页
安卓实现动态改变app的图标

安卓实现动态改变app的图标

作者: bruce1990 | 来源:发表于2017-12-25 17:16 被阅读0次

    11月,12月想必是每个男人最痛心的时间,因为tb、jd打着双11,双12旗号大肆敛财。作为一个搬砖的,我是最鄙视这种行径的(技术low没在tb,jd工作~~)。额,好像扯得有点远了。最近看到很多像淘宝,京东的app的图标都会动态改变相应的活动图标,我又没看见这些app有更新。所以这个应该是app代码实现的,于是开始找相关资料。发现可以通过activity-alias设置多个app入口。

    1.首先看看我的AndroidManifest.xml

    第一个activity下的启动入口是我们最熟悉的了。我在下面的activity-alias(别名)写了两个入口Test11和Test12,这里个别名可以随便命名,当然啦要符合安卓的命名规范。那么怎么切换这个入口呢。这里得借助PackageManager这个类的setComponentEnabledSetting这个方法了。其实看到这个命名我们也能猜出来了。就是设置某个组件能否有作用嘛。

    ```

    publicclassMainActivityextendsAppCompatActivity{

    privateComponentNamedefault_name;

    privateComponentNamedouble_11;

    privateComponentNamedouble_12;

    privatePackageManagermPm;

    @Override

    protectedvoidonCreate(BundlesavedInstanceState){

    super.onCreate(savedInstanceState);

    setContentView(R.layout.activity_main);

    mPm=getApplicationContext().getPackageManager();

    default_name=getComponentName();

    double_11=newComponentName(getApplicationContext(),"com.example.administrator.changeicon.Test11");

    double_12=newComponentName(getApplicationContext(),"com.example.administrator.changeicon.Test12");

    }

    publicvoidchangeIcon11(Viewview){

    disableComponent(default_name);

    disableComponent(double_12);

    enableComponent(double_11);

    }

    publicvoidchangeIcon12(Viewview){

    disableComponent(default_name);

    disableComponent(double_11);

    enableComponent(double_12);

    }

    privatevoidenableComponent(ComponentNamecomponentName){

    mPm.setComponentEnabledSetting(componentName,

    PackageManager.COMPONENT_ENABLED_STATE_ENABLED,

    PackageManager.DONT_KILL_APP);

    }

    privatevoiddisableComponent(ComponentNamecomponentName){

    mPm.setComponentEnabledSetting(componentName,

    PackageManager.COMPONENT_ENABLED_STATE_DISABLED,

    PackageManager.DONT_KILL_APP);

    }

    }

    ```

    代码很简单,其实主要知识点就在activity-alias和setComponentEnabledSetting这两处。如果想要深入了解可以去深入研究一下app的启动入口和PackageManager源码。

    相关文章

      网友评论

          本文标题:安卓实现动态改变app的图标

          本文链接:https://www.haomeiwen.com/subject/rdiowxtx.html