android工程实现换壁纸功能(转)

简介: 最近工作要实现换壁纸小功能,将代码做成demo发出来 没有采用zip格式换肤,因为只是更换一张图片背景 1.将三张图放入drawable-hdpi,我放的是480*800的 2.用sharedPreference存取皮肤的id,以便于下次启动的时候根据id来选择用哪个皮肤,在onresume()里刷新皮肤 3.

最近工作要实现换壁纸小功能,将代码做成demo发出来

没有采用zip格式换肤,因为只是更换一张图片背景

1.将三张图放入drawable-hdpi,我放的是480*800的

2.用sharedPreference存取皮肤的id,以便于下次启动的时候根据id来选择用哪个皮肤,在onresume()里刷新皮肤

3.存到sharedPreference的数据采用string,不能采用图片的id,因为图片的id是每次程序启动后又会重新生成的

不多说了直接上,代码

 

[java]  view plain copy
 
  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. }  


然后上效果

 

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

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

相关文章
|
1月前
|
XML 缓存 Android开发
Android开发,使用kotlin学习多媒体功能(详细)
Android开发,使用kotlin学习多媒体功能(详细)
102 0
|
3月前
|
安全 Linux Android开发
Android 安全功能
Android 安全功能
37 0
|
4月前
|
Java 关系型数据库 数据库
Android App连接真机步骤与APP的开发语言和工程结构讲解以及运行实例(超详细必看)
Android App连接真机步骤与APP的开发语言和工程结构讲解以及运行实例(超详细必看)
36 0
|
6月前
|
安全 Android开发 开发者
Android 原生 Picture in Picture 画中画功能避坑指南(下)
Android 原生 Picture in Picture 画中画功能避坑指南(下)
103 0
|
2天前
|
Java Android开发
Android Mediatek 应用层重置USB设备功能
Android Mediatek 应用层重置USB设备功能
9 0
|
4月前
|
XML 前端开发 Java
Android App实战项目之实现手写签名APP功能(附源码,简单易懂 可直接实用)
Android App实战项目之实现手写签名APP功能(附源码,简单易懂 可直接实用)
48 0
|
2月前
|
Java Android开发
[Android AIDL] --- AIDL工程搭建
[Android AIDL] --- AIDL工程搭建
18 0
|
4月前
|
传感器 物联网 Android开发
【Android App】物联网中查看手机支持的传感器及实现摇一摇功能-加速度传感器(附源码和演示 超详细)
【Android App】物联网中查看手机支持的传感器及实现摇一摇功能-加速度传感器(附源码和演示 超详细)
67 1
|
4月前
|
XML Java 定位技术
【Android App】定位导航GPS中开启手机定位功能讲解及实战(附源码和演示 超详细)
【Android App】定位导航GPS中开启手机定位功能讲解及实战(附源码和演示 超详细)
116 0
|
4月前
|
XML 前端开发 Java
【Android App】三维处理中三维投影OpenGL功能的讲解及实战(附源码和演示 超详细必看)
【Android App】三维处理中三维投影OpenGL功能的讲解及实战(附源码和演示 超详细必看)
33 1