歡迎來到Linux教程網
Linux教程網
Linux教程網
Linux教程網
您现在的位置: Linux教程網 >> UnixLinux >  >> Linux編程 >> Linux編程

Android工程實現換壁紙功能【附源碼】

最近工作要實現換壁紙小功能,將代碼做成demo發出來

沒有采用zip格式換膚,因為只是更換一張圖片背景

1.將三張圖放入drawable-hdpi,我放的是480*800的

2.用sharedPreference存取皮膚的id,以便於下次啟動的時候根據id來選擇用哪個皮膚,在onresume()裡刷新皮膚

3.存到sharedPreference的數據采用string,不能采用圖片的id,因為圖片的id是每次程序啟動後又會重新生成的

不多說了直接上,代碼

  1. public class ChangeSkinActivity extends Activity {  
  2.     private static final String SKIN_ID = "skin_id";  
  3.     @Override  
  4.     public void onCreate(Bundle savedInstanceState) {  
  5.         super.onCreate(savedInstanceState);  
  6.         this.requestWindowFeature(Window.FEATURE_NO_TITLE);  
  7.         setContentView(R.layout.main);  
  8.         Button btnChangeSkin = (Button) findViewById(R.id.btnChangeSkin);  
  9.         btnChangeSkin.setOnClickListener(new View.OnClickListener() {  
  10.               
  11.             @Override  
  12.             public void onClick(View v) {  
  13.                 if ("bg0".equals(getSkinResourceName())) {  
  14.                     setSkinResourceName("bg1");  
  15.                 }else if ("bg1".equals(getSkinResourceName())) {  
  16.                     setSkinResourceName("bg2");  
  17.                 }else if ("bg2".equals(getSkinResourceName())) {  
  18.                     setSkinResourceName("bg0");  
  19.                 }  
  20.                 refreshSkin();  
  21.             }  
  22.         });  
  23.     }  
  24.     @Override  
  25.     protected void onResume() {  
  26.         super.onResume();  
  27.         refreshSkin();  
  28.     }  
  29.     /** 
  30.      * 更換皮膚 
  31.      * 1.點擊更換皮膚快捷菜單後 
  32.      * 2.程序運行起來後 
  33.      */  
  34.     private void refreshSkin() {  
  35.         int skinId = getSkinResourceId();  
  36.         findViewById(R.id.layout).setBackgroundResource(skinId);  
  37.     }  
  38.     private int getSkinResourceId(){  
  39.         int skinId = R.drawable.bg0;  
  40.         String skinName=getSkinResourceName();  
  41.         if(skinName.equals("bg1")){  
  42.             skinId = R.drawable.bg1;  
  43.         } else if(skinName.equals("bg2")){  
  44.             skinId = R.drawable.bg2;  
  45.         }  
  46.         return skinId;  
  47.     }  
  48.     private String getSkinResourceName() {  
  49.         try {  
  50.             SharedPreferences preferences = getSharedPreferences("skinxml", Context.MODE_PRIVATE);  
  51.             return preferences.getString(SKIN_ID, "bg0");  
  52.         } catch (Exception e) {  
  53.             e.printStackTrace();  
  54.             return  "bg0";  
  55.         }  
  56.     }  
  57.     private void setSkinResourceName(String skinName) {  
  58.         SharedPreferences preferences = getSharedPreferences("skinxml", Context.MODE_PRIVATE);  
  59.         Editor editor =  preferences.edit();  
  60.         editor.putString(SKIN_ID, skinName);  
  61.         editor.commit();  
  62.     }  
  63. }  

然後上效果

Android工程實現換壁紙功能源碼下載地址:

免費下載地址在 http://linux.linuxidc.com/

用戶名與密碼都是www.linuxidc.com

具體下載目錄在 /2012年資料/9月/3日/Android工程實現換壁紙功能

Copyright © Linux教程網 All Rights Reserved