Android换肤可以通过切换Layout布局文件来切换皮肤。

Demo下载地址http://download.csdn.net/detail/ericfantastic/9093927

换肤Demo截图:




Demo实现很简单,准备一个布局文件,其他skin1-3布局文件都一样,仅仅是图片不一样。

皮肤1布局文件skin1.xml

<RelativeLayout xmlns:android="http://schemas.android.com/apk/res/android"    xmlns:tools="http://schemas.android.com/tools"    android:layout_width="match_parent"    android:layout_height="match_parent"    android:paddingBottom="@dimen/activity_vertical_margin"    android:paddingLeft="@dimen/activity_horizontal_margin"    android:paddingRight="@dimen/activity_horizontal_margin"    android:paddingTop="@dimen/activity_vertical_margin"    tools:context="com.Eric.changeskindemo.MainActivity"     android:background="@drawable/skin1"    >    <LinearLayout     android:layout_width="fill_parent"    android:layout_height="wrap_content"    android:layout_marginTop="20dp"    android:gravity="center_horizontal">    <Button         android:id="@+id/btn_skin1"        android:layout_width="80dp"        android:layout_height="40dp"        android:text="皮肤1"        android:background="@drawable/btn_skin1"/>    <Button         android:id="@+id/btn_skin2"        android:layout_width="80dp"        android:layout_height="40dp"        android:text="皮肤2"        android:background="@drawable/btn_skin2"/>    <Button         android:id="@+id/btn_skin3"        android:layout_width="80dp"        android:layout_height="40dp"        android:text="皮肤3"        android:background="@drawable/btn_skin3"/></LinearLayout>    <LinearLayout    android:layout_width="fill_parent"    android:layout_height="wrap_content"    android:layout_marginTop="100dp"    android:gravity="center_horizontal">    <ImageView         android:layout_width="100dp"        android:layout_height="100dp"        android:background="@drawable/touxiang1"/></LinearLayout></RelativeLayout>

主界面MainActivity.java

package com.Eric.changeskindemo;import android.app.Activity;import android.os.Bundle;import android.view.Menu;import android.view.MenuItem;import android.view.View;import android.view.View.OnClickListener;import android.widget.Button;import android.widget.ImageView;public class MainActivity extends Activity {private Button btn1,btn2,btn3;private ImageView imageView;@Overrideprotected void onCreate(Bundle savedInstanceState) {super.onCreate(savedInstanceState);setContentView(R.layout.main);init();}public void init(){btn1 = (Button) findViewById(R.id.btn_skin1);btn2 = (Button) findViewById(R.id.btn_skin2);btn3 = (Button) findViewById(R.id.btn_skin3);btn1.setOnClickListener(new MyBtnListener(R.layout.skin1));btn2.setOnClickListener(new MyBtnListener(R.layout.skin2));btn3.setOnClickListener(new MyBtnListener(R.layout.skin3));}public class MyBtnListener implements OnClickListener{private final int layout_id;public MyBtnListener(int layout) {layout_id = layout;}@Overridepublic void onClick(View v) {setContentView(layout_id);init();}}}




更多相关文章

  1. 一款常用的 Squid 日志分析工具
  2. GitHub 标星 8K+!一款开源替代 ls 的工具你值得拥有!
  3. RHEL 6 下 DHCP+TFTP+FTP+PXE+Kickstart 实现无人值守安装
  4. Linux 环境下实战 Rsync 备份工具及配置 rsync+inotify 实时同步
  5. 关于Android(安卓)7.0下Launcher3下default_workspace.xml修改无
  6. ScrollView中的控件占据ScrollView的match_parent
  7. 使用h5+下载并打开文件,支持Android,IOS
  8. android2.2 android2.3.4 竖屏简单更改
  9. Android(安卓)aidl 编译报couldn't find import for class

随机推荐

  1. 详解Android 扫描条形码(Zxing插件)
  2. Android -联系人列表
  3. 解决gradle DSL method not found: andro
  4. android主界面tab切换方式
  5. 阿里 Andfix 介绍及原理解析
  6. Android解析XML到对象工具类
  7. android LinearLayout添加分割线
  8. Android 学习 之 关闭应用程序的方法
  9. Android(安卓)RecyclerView聊天界面控件
  10. 分享一款android的日历组件