皮肤内置在程序里面的!其实可以不用我这么复杂的,直接每次换肤更改图片资源就可以。
那还是写上我的东西。
此处的xml借鉴郑涛的一篇关于xml详解一的一篇文章,写得很不错,大家也可以看看!
http://www.cnblogs.com/zhengtao/articles/1924940.html
基本思路是,每个控件在布局中写资源是drawable中的一个xml文件
而这个xml文件给每个控件分了4个level的图片
在程序中直接修改level就可以达到修改控件的图片资源!
贴上一个 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就可以修改它的bg button1.getBackground().setLevel(level);
之所以这样写是在 再添加其他的主题时候只需要在button里面再添加个level就可以 再弄个监听器触发一下
布局文件main.xml:
<?xml version="1.0" encoding="utf-8"?>
<RelativeLayout xmlns:android="http://schemas.android.com/apk/res/android"
android:orientation="vertical"
android:layout_width="fill_parent"
android:layout_height="fill_parent"
>
<LinearLayout
android:id = "@+id/linearlayout1"
android:layout_width = "fill_parent"
android:layout_height = "wrap_content"
android:layout_alignParentTop = "true">
<Button
android:id = "@+id/button1"
android:layout_width = "wrap_content"
android:layout_height = "wrap_content"
android:background = "@drawable/buttonskin1"/>
<Button
android:id = "@+id/button2"
android:layout_width = "wrap_content"
android:layout_height = "wrap_content"
android:background = "@drawable/buttonskin2"/>
<Button
android:id = "@+id/button3"
android:layout_width = "wrap_content"
android:layout_height = "wrap_content"
android:background = "@drawable/buttonskin3"/>
<Button
android:id = "@+id/button4"
android:layout_width = "wrap_content"
android:layout_height = "wrap_content"
android:background = "@drawable/buttonskin4"/>
</LinearLayout>
<LinearLayout
android:id = "@+id/linearlayout2"
android:layout_width = "fill_parent"
android:layout_height = "wrap_content"
android:layout_alignParentBottom = "true">
<Button
android:id = "@+id/button5"
android:layout_width = "wrap_content"
android:layout_height = "wrap_content"
android:background = "@drawable/buttonskin5"/>
<Button
android:id = "@+id/button6"
android:layout_width = "wrap_content"
android:layout_height = "wrap_content"
android:background = "@drawable/buttonskin6"/>
<Button
android:id = "@+id/button7"
android:layout_width = "wrap_content"
android:layout_height = "wrap_content"
android:background = "@drawable/buttonskin7"/>
<Button
android:id = "@+id/button8"
android:layout_width = "wrap_content"
android:layout_height = "wrap_content"
android:background = "@drawable/buttonskin8"/>
</LinearLayout>
<ImageView
android:id = "@+id/image"
android:layout_width = "fill_parent"
android:layout_height = "wrap_content"
android:layout_below = "@id/linearlayout1"
android:layout_above = "@id/linearlayout2"
android:src = "@drawable/imageskin"/>
</RelativeLayout>