How to change an application icon programmatically in Android?

前端 未结 10 2381
闹比i
闹比i 2020-11-21 22:33

Is it possible to change an application icon directly from the program?
I mean, change icon.png in the res\\drawable folder.
I would like t

10条回答
  •  耶瑟儿~
    2020-11-21 23:09

    AndroidManifest.xml example:

    
    
            
                
                    
                    
                
            
    
            
                
                    
                    
                    
                
            
    
            
                
                    
                    
                    
                
            
    
            
                
                    
                    
                    
                
            
    
        
    

    Then follow below given code in MainActivity:

    ImageView imageView = (ImageView)findViewById(R.id.imageView);
                int imageResourceId;
                String currentDateTimeString = DateFormat.getDateTimeInstance().format(new Date());
                int hours = new Time(System.currentTimeMillis()).getHours();
                Log.d("DATE", "onCreate: "  + hours);
    
                getPackageManager().setComponentEnabledSetting(
                        getComponentName(), PackageManager.COMPONENT_ENABLED_STATE_DISABLED, PackageManager.DONT_KILL_APP);
    
                if(hours == 13)
                {
                    imageResourceId = this.getResources().getIdentifier("ic_android_red", "drawable", this.getPackageName());
                    getPackageManager().setComponentEnabledSetting(
                            new ComponentName("com.pritesh.resourceidentifierexample", "com.pritesh.resourceidentifierexample.MainActivity-Red"),
                            PackageManager.COMPONENT_ENABLED_STATE_ENABLED, PackageManager.DONT_KILL_APP);
                }else if(hours == 14)
                {
                    imageResourceId = this.getResources().getIdentifier("ic_android_green", "drawable", this.getPackageName());
                    getPackageManager().setComponentEnabledSetting(
                            new ComponentName("com.pritesh.resourceidentifierexample", "com.pritesh.resourceidentifierexample.MainActivity-Green"),
                            PackageManager.COMPONENT_ENABLED_STATE_ENABLED, PackageManager.DONT_KILL_APP);
    
                }else
                {
                    imageResourceId = this.getResources().getIdentifier("ic_android_blue", "drawable", this.getPackageName());
                    getPackageManager().setComponentEnabledSetting(
                            new ComponentName("com.pritesh.resourceidentifierexample", "com.pritesh.resourceidentifierexample.MainActivity-Blue"),
                            PackageManager.COMPONENT_ENABLED_STATE_ENABLED, PackageManager.DONT_KILL_APP);
    
                }
    
                imageView.setImageResource(imageResourceId);
    

提交回复
热议问题