自定义PreferenceActivity的样式

来源:互联网 发布:淘宝凤求凰cdk抽奖 编辑:程序博客网 时间:2024/05/29 18:38

写一个系统的设置界面,将其设置样式就可以了

 

 

 

先建一个SettingActivity工程:

AndroidManifest.xml:

[html] view plaincopy
  1. <?xml version="1.0" encoding="utf-8"?>  
  2. <manifest xmlns:android="http://schemas.android.com/apk/res/android"  
  3.     package="com.cn.nj.setting"  
  4.     android:versionCode="1"  
  5.     android:versionName="1.0" >  
  6.   
  7.     <uses-sdk android:minSdkVersion="8" />  
  8.   
  9.     <application  
  10.         android:icon="@drawable/ic_launcher"  
  11.         android:label="@string/app_name" >  
  12.         <activity  
  13.             android:label="@string/app_name"  
  14.             android:name=".SettingActivity"   
  15.             android:theme="@style/Default" >  
  16.             <intent-filter >  
  17.                 <action android:name="android.intent.action.MAIN" />  
  18.   
  19.                 <category android:name="android.intent.category.LAUNCHER" />  
  20.             </intent-filter>  
  21.         </activity>  
  22.     </application>  
  23.   
  24. </manifest>  

在res/xml/setting_preference.xml

[html] view plaincopy
  1. <?xml version="1.0" encoding="utf-8"?>  
  2. <PreferenceScreen xmlns:android="http://schemas.android.com/apk/res/android" >  
  3.   
  4.     <PreferenceCategory android:title="消息通知" >  
  5.   
  6.         <CheckBoxPreference  
  7.             android:defaultValue="true"  
  8.             android:key="开启声音"  
  9.             android:summary="当有新消息通知时播放声音提示"  
  10.             android:title="开启声音" />  
  11.   
  12.         <CheckBoxPreference  
  13.             android:defaultValue="true"  
  14.             android:key="开启震动"  
  15.             android:summary="当有新消息通知时震动提示"  
  16.             android:title="开启震动" />  
  17.     </PreferenceCategory>  
  18.   
  19.     <PreferenceCategory android:title="辅助功能" >  
  20.   
  21.         <CheckBoxPreference  
  22.             android:defaultValue="false"  
  23.             android:key="开启截屏功能"  
  24.             android:summary="摇晃手机即可截图(在QQ外截图需root权限)"  
  25.             android:title="开启截屏功能" />  
  26.   
  27.         <CheckBoxPreference  
  28.             android:defaultValue="false"  
  29.             android:key="上报我的地理位置"  
  30.             android:summary="上报地理位置信息以便附近的人能够找到我"  
  31.             android:title="上报我的地理位置" />  
  32.     </PreferenceCategory>  
  33.   
  34.     <PreferenceCategory android:title="帮助" >  
  35.   
  36.         <PreferenceScreen  
  37.             android:summary="反馈建议"  
  38.             android:title="反馈建议" >  
  39.   
  40.             <intent  
  41.                 android:action="android.intent.action.VIEW"  
  42.                 android:data="http://www.baidu.com" />  
  43.         </PreferenceScreen>  
  44.     </PreferenceCategory>  
  45.   
  46. </PreferenceScreen>  


在res/values/style.xml

[html] view plaincopy
  1. <?xml version="1.0" encoding="utf-8"?>  
  2. <resources>  
  3.   
  4.       
  5.      <style name="CustomWindowTitleText" >    
  6.           <item name="android:textSize">20dip</item>    
  7.           <item name="android:textColor">#FFffffff</item>    
  8.           <item name="android:paddingLeft">10dp</item>  
  9.      </style>   
  10.       
  11.       
  12.     <style name="customCheckBox" parent="@android:style/Widget.CompoundButton.CheckBox">  
  13.         <item name="android:button">@drawable/selector_checkbox</item>  
  14.     </style>  
  15.       
  16.     <style name="Default.NoTitleBar" parent="@android:style/Theme.Light.NoTitleBar">  
  17.         <item name="android:textColorPrimaryInverse">@android:color/black</item>      
  18.         <item name="android:windowBackground">@color/window_bg</item>  
  19.         <item name="android:windowContentOverlay">@null</item>  
  20.         <item name="android:windowTitleSize">42.0dip</item>  
  21.         <item name="android:windowTitleStyle">@style/CustomWindowTitleText</item>   
  22.         <item name="android:checkboxStyle">@style/customCheckBox</item>  
  23.     </style>  
  24.       
  25.       
  26.     <style name="Default" parent="@style/Default.NoTitleBar">  
  27.         <item name="android:windowNoTitle">false</item>  
  28.     </style>  
  29.       
  30.       
  31. </resources>  
  32.   
  33.   
  34.   
  35.   
  36.   
  37. <!-- item name=android:textColorPrimaryInverse                   preference标题文本颜色    -->  
  38. <!-- item name="android:windowBackground"                        窗体背景    -->  
  39. <!-- item name=android:windowTitleBackgroundStyle                窗体标题背景风格-->  
  40. <!-- item name="android:windowTitleSize"                         窗体标题栏高度-->                     
  41. <!-- item name="android:listViewStyle"                           preference是一个LISTVIEW,这里设置该风格-->  
  42. <!-- item name="android:textColorPrimary"                        preference一级文本颜色-->  
  43. <!-- item name="android:textColorSecondary"                      preference二级文本颜色-->  


在res/drawable/selector_checkbox.xml

[html] view plaincopy
  1. <?xml version="1.0" encoding="UTF-8"?>  
  2. <selector  
  3.   xmlns:android="http://schemas.android.com/apk/res/android">  
  4.     <item android:state_checked="false" android:drawable="@drawable/checkbox_unchecked" />  
  5.     <item android:state_checked="true" android:drawable="@drawable/checkbox_checked" />  
  6. </selector>  

在res/drawable/checkbox_checked.xml

[html] view plaincopy
  1. <?xml version="1.0" encoding="UTF-8"?>  
  2. <layer-list  
  3.   xmlns:android="http://schemas.android.com/apk/res/android">  
  4.     <item>  
  5.         <shape>  
  6.             <solid android:color="#ffecf6fb" />  
  7.             <stroke android:width="1.0dip" android:color="#ffb3cad9" />  
  8.             <padding android:left="5.0dip" android:top="5.0dip" android:right="5.0dip" android:bottom="5.0dip" />  
  9.         </shape>  
  10.     </item>  
  11.     <item>  
  12.         <shape>  
  13.             <solid android:color="#ff99c308" />  
  14.             <padding android:left="5.0dip" android:top="5.0dip" android:right="5.0dip" android:bottom="5.0dip" />  
  15.         </shape>  
  16.     </item>  
  17.     <item>  
  18.         <shape>  
  19.             <solid android:color="#ffffffff" />  
  20.         </shape>  
  21.     </item>  
  22. </layer-list>  


在res/drawable/checkbox_unchecked.xml

[html] view plaincopy
  1. <?xml version="1.0" encoding="UTF-8"?>  
  2. <shape android:shape="rectangle"  
  3.   xmlns:android="http://schemas.android.com/apk/res/android">  
  4.     <solid android:color="#ffecf6fb" />  
  5.     <stroke android:width="1.0dip" android:color="#ffb3cad9" />  
  6.     <size android:height="18.0dip" android:width="18.0dip" />  
  7. </shape>  


SettingActivity:

[java] view plaincopy
  1. package com.cn.nj.setting;  
  2.   
  3.   
  4. import android.os.Bundle;  
  5. import android.preference.PreferenceActivity;  
  6.   
  7. public class SettingActivity extends PreferenceActivity {  
  8.     /** Called when the activity is first created. */  
  9.     @Override  
  10.     public void onCreate(Bundle savedInstanceState) {  
  11.         super.onCreate(savedInstanceState);  
  12.         //setContentView(R.layout.main);  
  13.         addPreferencesFromResource(R.xml.setting_preference);  
  14.     }  
  15. }  


 

运行效果如下:

 

 代码下载地址为:http://download.csdn.net/detail/niejing654092427/4409630

原创粉丝点击