歡迎來到Linux教程網
Linux教程網
Linux教程網
Linux教程網
Linux教程網 >> Linux編程 >> Linux編程 >> Android工程實現換壁紙功能【附源碼】

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

日期:2017/3/1 10:11:04   编辑:Linux編程

最近工作要實現換壁紙小功能,將代碼做成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. @Override
  11. public void onClick(View v) {
  12. if ("bg0".equals(getSkinResourceName())) {
  13. setSkinResourceName("bg1");
  14. }else if ("bg1".equals(getSkinResourceName())) {
  15. setSkinResourceName("bg2");
  16. }else if ("bg2".equals(getSkinResourceName())) {
  17. setSkinResourceName("bg0");
  18. }
  19. refreshSkin();
  20. }
  21. });
  22. }
  23. @Override
  24. protected void onResume() {
  25. super.onResume();
  26. refreshSkin();
  27. }
  28. /**
  29. * 更換皮膚
  30. * 1.點擊更換皮膚快捷菜單後
  31. * 2.程序運行起來後
  32. */
  33. private void refreshSkin() {
  34. int skinId = getSkinResourceId();
  35. findViewById(R.id.layout).setBackgroundResource(skinId);
  36. }
  37. private int getSkinResourceId(){
  38. int skinId = R.drawable.bg0;
  39. String skinName=getSkinResourceName();
  40. if(skinName.equals("bg1")){
  41. skinId = R.drawable.bg1;
  42. } else if(skinName.equals("bg2")){
  43. skinId = R.drawable.bg2;
  44. }
  45. return skinId;
  46. }
  47. private String getSkinResourceName() {
  48. try {
  49. SharedPreferences preferences = getSharedPreferences("skinxml", Context.MODE_PRIVATE);
  50. return preferences.getString(SKIN_ID, "bg0");
  51. } catch (Exception e) {
  52. e.printStackTrace();
  53. return "bg0";
  54. }
  55. }
  56. private void setSkinResourceName(String skinName) {
  57. SharedPreferences preferences = getSharedPreferences("skinxml", Context.MODE_PRIVATE);
  58. Editor editor = preferences.edit();
  59. editor.putString(SKIN_ID, skinName);
  60. editor.commit();
  61. }
  62. }

然後上效果

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

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

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

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

Copyright © Linux教程網 All Rights Reserved