当前位置:操作系统 > 安卓/Android >>

Android 打造自己的个性化应用(二):应用程序内置资源实现换肤功能

    通过应用程序内置资源实现换肤,典型的应用为QQ空间中换肤的实现. 应用场景为: 应用一般不大,且页面较少,风格相对简单,一般只用实现部分资源或者只用实现背景的更换.

   此种换肤方式实现的思路:

  1. 把几套皮肤放在res/drawable目录里,然后用SharedPreferences来记录当前皮肤的资源id.然后在程序启动时加载Activity背景。

  2. 主要的实现在皮肤管理器SkinManager类中. 将皮肤资源的ID加入集合中. 由该类同一调度皮肤更换,如初始化皮肤,获取当前皮肤符号以及具体的对应资源的更换皮肤.

 

 

    接下来看一下效果图:

\
   

 

 

 

 

 

 

内置皮肤的实现相对比较简单,下面直接上代码:

 


AndroidMainfest.xml


[java]
<?xml version="1.0" encoding="utf-8"?> 
<manifest xmlns:android="http://schemas.android.com/apk/res/android" 
    package="com.tony.skindemo" 
    android:versionCode="1" 
    android:versionName="1.0" > 
 
    <uses-sdk android:minSdkVersion="8" /> 
 
    <application 
        android:icon="@drawable/ic_launcher" 
        android:label="@string/app_name" > 
        <activity 
            android:label="@string/app_name" 
            android:name="com.tony.skindemo.SkinDemoActivity" > 
            <intent-filter > 
                <action android:name="android.intent.action.MAIN" /> 
 
                <category android:name="android.intent.category.LAUNCHER" /> 
            </intent-filter> 
        </activity> 
         
         
    </application> 
 
</manifest> 

<?xml version="1.0" encoding="utf-8"?>
<manifest xmlns:android="http://schemas.android.com/apk/res/android"
    package="com.tony.skindemo"
    android:versionCode="1"
    android:versionName="1.0" >

    <uses-sdk android:minSdkVersion="8" />

    <application
        android:icon="@drawable/ic_launcher"
        android:label="@string/app_name" >
        <activity
            android:label="@string/app_name"
            android:name="com.tony.skindemo.SkinDemoActivity" >
            <intent-filter >
                <action android:name="android.intent.action.MAIN" />

                <category android:name="android.intent.category.LAUNCHER" />
            </intent-filter>
        </activity>
       
       
    </application>

</manifest>
布局文件:

main.xml


[java]
<?xml version="1.0" encoding="utf-8"?> 
<LinearLayout xmlns:android="http://schemas.android.com/apk/res/android" 
    android:layout_width="fill_parent" 
    android:layout_height="fill_parent" 
    android:orientation="vertical" > 
 
    <TextView 
        android:textColor="#ff00ff" 
        android:text="程序皮肤更换" 
        android:layout_width="fill_parent" 
        android:layout_height="wrap_content" /> 
<RadioGroup 
        android:id="@+id/skin_options" 
        android:layout_width="fill_parent" 
        android:layout_height="wrap_content" 
         > 
 
        <RadioButton 
            android:layout_weight="1" 
            android:id="@+id/radioButton1" 
            android:layout_width="wrap_content" 
            android:layout_height="wrap_content" 
            android:text="风格1" /> 
 
        <RadioButton 
            android:layout_weight="1" 
            android:id="@+id/radioButton2" 
            android:layout_width="wrap_content" 
            android:layout_height="wrap_content" 
            android:text="风格2" /> 
 
        <RadioButton 
            android:layout_weight="1" 
            android:id="@+id/radioButton3" 
            android:layout_width="wrap_content" 
            android:layout_height="wrap_content" 
            android:text="风格3" /> 
 
     &

补充:移动开发 , Android ,
CopyRight © 2022 站长资源库 编程知识问答 zzzyk.com All Rights Reserved
部分文章来自网络,