基本思路:
1.每个控件在布局中背景资源不是设置一幅图片,而是设置drawable中的一个xml文件,而这个xml文件给每个控件分了多个level的图片。
2.在程序中直接修改level就可以达到修改控件的图片资源的效果!一个皮肤的所有图片设置成一个level,确定level就确定了一个皮肤。
以一个Button为例:
第一步:
创建 button的buttonskin1.xml
<?xml version="1.0" encoding="utf-8"?>
<level-list xmlns:android="http://schemas.android.com/apk/res/android">
<item android:maxLevel="1" android:drawable="@drawable/button11" />
<item android:maxLevel="2" android:drawable="@drawable/button21" />
<item android:maxLevel="3" android:drawable="@drawable/button31" />
<item android:maxLevel="4" android:drawable="@drawable/button41" />
</level-list>
在布局文件里面 设置button的资源时候直接像引用图片那样android:background = "@drawable/buttonskin1"
第二部:
程序里面通过修改level就可以修改它的level
bg button1.getBackground().setLevel(level);
优点:
在添加其他的主题时候只需要在buttonskin1.xml文件里面再添加个level就可以。