灵通163百科在线-实用的手机,证券免费资源网站

您现在的位置:首页 > Android资源 > 主题资源 >

Android动态切换Theme(主题)

教程来源:www.lt163.com     点击数:     更新时间:2017-05-14 16:29

  关于主题和样式:
  就像style一样,主题依然在
  <--白色主题-->
  注意到这里每个主题中的item名字是相同的,且在布局文件main.xml中

  android:orientation="vertical"

  android:layout_width="fill_parent"

  android:layout_height="wrap_content"

  style="?pageBackground">

复制代码


  main.xml中引用白色主题还是蓝色主题的pageBackground,交由代码处理。动态切换主题。
  代码实现动态切换:
  创建一个util类,设置一个全局变量保存主题信息。
  那么就必须调用actvity.finish()。然后再重新加载setTheme()
  下面贴出主要的代码:package irdc.ex03_21;

  import android.app.Activity;

  import android.os.Bundle;

  import android.view.View;

  import android.view.View.OnClickListener;

  import android.widget.Button;

  public class EX03_21 extends Activity implements OnClickListener{

  /** Called when the activity is first created. */

  Button button = null;

  @Override

  public void onCreate(Bundle savedInstanceState) {

  Utils.onActivityCreateSetTheme(this);

  super.onCreate(savedInstanceState);

  setContentView(R.layout.main);

  findViewById(R.id.button1).setOnClickListener(this);

  findViewById(R.id.button2).setOnClickListener(this);

  findViewById(R.id.button3).setOnClickListener(this);

  }

  @Override

  public void onClick(View v)

  {

  System.out.println("单击按钮");

  // TODO Auto-generated method stub

  switch (v.getId())

  {

  case R.id.button1:

  System.out.println("主题1");

  Utils.changeToTheme(this, 1);

  break;

  case R.id.button2:

  System.out.println("主题2");

  Utils.changeToTheme(this, 2);

  break;

  case R.id.button3:

  System.out.println("主题3");

  Utils.changeToTheme(this, 3);

  break;

  }

  }

  }

  package irdc.ex03_21;

  import android.app.Activity;

  import android.content.Intent;

  public class Utils

  {

  private static int sTheme;

  public final static int THEME_DEFAULT = 0;

  public final static int THEME_WHITE = 1;

  public final static int THEME_BLUE = 2;

  /**

  * Set the theme of the Activity, and restart it by creating a new

Activity

  * of the same type.

  */

  public static void changeToTheme(Activity activity, int theme)

  {

  sTheme = theme;

  activity.finish();

  activity.startActivity(new Intent(activity, activity.getClass()));

  }

  /** Set the theme of the activity, according to the configuration. */

  public static void onActivityCreateSetTheme(Activity activity)

  {

  switch (sTheme)

  {

  default:

  case 1:

  activity.setTheme(R.style.Theme_Translucent);

  break;

  case 2:

  activity.setTheme(R.style.Theme_Translucent2);

  break;

  case 3:

  activity.setTheme(R.style.Theme_Transparent);

  break;

  }

  }

  }

复制代码


  xmlns:android=""

  android:orientation="vertical"

  android:layout_width="fill_parent"

  android:layout_height="fill_parent"

  >

  

  android:textColor="@drawable/darkgreen"

  android:layout_width="fill_parent"

  android:layout_height="wrap_content"

  android:text="@string/str_text_view1"

  />

  

  android:id="@+id/button2"

  android:layout_width="wrap_content"

  android:layout_height="wrap_content"

  android:text="主题1" />

  

  android:id="@+id/button1"

  android:layout_width="wrap_content"

  android:layout_height="wrap_content"

  android:text="主题2" />

  

  android:id="@+id/button3"

  android:layout_width="wrap_content"

  android:layout_height="wrap_content"

  android:text="主题3" />

复制代码

075146vsj2n29elxsxl9gm.png

2013-9-11 11:17:08 上传

下载附件 (38.5 KB)


  9Tech·Android开发交流群:259753725



 

没有相关教程
UC浏览器 最先进实用的手机端浏览器,最大限度节省页面浏览流量,点击下载
老虎地图 绿色纯免费GPS定位省流量的最佳手机地图,点击下载
网秦手机安全系列 手机杀毒防盗,防火墙,构建手机安全,点击进入
塞班精品游戏 最流行最给力的塞班S60免签名名精品游戏合集,点击进入
阿里通 手机上轻松拨打网络电话和收发短信,高音质超省话费,资费标准
爱科手机电话 国内最好的手机网络电话领先品牌,价格低廉,点击查看
愤怒的小鸟2 全民挑战超流行休闲游戏力推新作-愤怒的小鸟2,点击查看
魔力旺旺 淘宝卖家首选的交易工具

资源下载排行
文章阅读排行