2014-06-21 83 views
8

安裝了一個android應用程序後,當您按下應用程序中的按鈕時,是否可以動態更改應用程序圖標和名稱(在運行時)?如何在運行時更改android應用程序名稱和圖標?

這是到目前爲止的代碼..,

getPackageManager().setComponentEnabledSetting(

new ComponentName("com.example.badgemaste", "com.example.badgemaste.MainActivity"), 

       PackageManager.COMPONENT_ENABLED_STATE_ENABLED, PackageManager.DONT_KILL_APP); 


      try { 
getPackageManager().setComponentEnabledSetting(
          new ComponentName("com.example.badgemaste", "com.example.badgemaste.MainActivity-One"), 
               PackageManager.COMPONENT_ENABLED_STATE_DISABLED, PackageManager.DONT_KILL_APP); 
          } catch (Exception e) { 
           //handle 
          } 

而且在manifest文件...

<application 
     android:allowBackup="false" 
     android:icon="@drawable/ic_launcher" 
     android:label="@string/app_name2" 
     android:theme="@style/AppTheme" > 
     <activity 
      android:name="com.example.badgemaste.MainActivity" 
      android:label="@string/app_name" 
      android:launchMode="singleTask"> 
      <intent-filter> 
       <action android:name="android.intent.action.MAIN" /> 

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

     <activity-alias 
      android:icon="@drawable/ic_laun" 
      android:label="@string/app_name" 
      android:name="com.example.badgemaste.MainActivity-One" 
      android:enabled="true" 
      android:targetActivity="com.example.badgemaste.MainActivity"> 

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



    </application> 

當我運行這段代碼,會出現最初第一個圖標(抽屜也在操作欄中),然後關閉應用程序並重新運行後,它將切換到其他圖標。

我想要做的是,將此過程分配給一個按鈕,即如果我只按下該按鈕,圖標將會改變,否則不會。 我該如何做到這一點?

回答

3

現在您可以使用PackageManager更改活動,只需創建一個按鈕並將代碼放置在OnClick中即可。

如果這工作,那麼應該。

+0

https://stackoverflow.com/questions/17146728/how-to-change-app-icon-dynamically-in-android?answertab=active#tab-top –

相關問題