zoukankan      html  css  js  c++  java
  • android工程实现换壁纸功能(转)

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

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

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

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

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

    不多说了直接上,代码

    [java] view plaincopy
     
    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

  • 相关阅读:
    主数据管理(MDM)的成熟度
    Tensorflow实战Google深度学习框架—郑泽宇书籍整理
    《Flink基础教程》王绍学习资料
    《重新定义计算(ApacheFlink实践)》_蒋晓伟资料整理
    js实现页面的自定义翻译
    谈谈px,em,rem(采自菜鸟)
    js和css分别实现元素曲线运动
    echarts鼠标事件以及自定义数据获取
    js数组的多条件排序
    H5-meta标签使用大全
  • 原文地址:https://www.cnblogs.com/softidea/p/4864078.html
Copyright © 2011-2022 走看看