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. @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工程实现换壁纸功能(转)android工程实现换壁纸功能(转)android工程实现换壁纸功能(转)

下载地址:http://download.csdn.net/detail/ethan_xue/4413167

http://blog.csdn.net/ethan_xue/article/details/7720177

上一篇:SharePoint 2007 Full Text Searching PowerShell and CS file content with SharePoint Search


下一篇:似懂非懂的localStorage和sessionStorage