android有两种设置主题到方法,

一种就是通过修改manifest文件,

一种就是在通过修改我们的java代码;

主题的自定义设置和样式的自定义设置类似。

在res/values/style.xml添加代码

对话框主题

<style name="MyTheme1" parent="@android:style/Theme.Dialog">

</style>

壁纸主题

<style name="MyTheme2"

parent="@android:style/Theme.Wallpaper.NoTitleBar.Fullscreen">

一般主题 所有控件 就没有父

<style name="MMTitleStyle">
<item name="android:gravity">center_vertical</item>
<item name="android:layout_width">fill_parent</item>
<item name="android:layout_height">fill_parent</item>
<item name="android:background">@drawable/mmtitle_bg</item>
</style>

</style>

二=====================

mainfest.xml文件,对<application>标签加入代码:android:theme="@style/MyTheme1",这样就是对整个应用的主题进行设置,如果只修改某个activity的主题,这句代码也可以加在相应的<activity>标签中。

在java代码里我们实现一下主题的设定,主要代码如下:

//读取主题 如果读取失败,则设置为系统默认的主题

theme = getSharedPreferences("cons", MODE_PRIVATE).getInt("theme",

android.R.style.Theme);

//设定主题

setTheme(theme);

//调用父类方法,一定要放到设定主题之后

super.onCreate(savedInstanceState);

=======

//通过点击,切换主题。点击后要重起应用能看到效果

btn.setOnClickListener( new OnClickListener(){

@Override

public void onClick(View v) {

if( R.style.MyTheme1 != theme ){

//将主题保存到sharedPreference中,以便下次启动设置主题时读取

sf.getSharedPreferences("cons",Activity.MODE_PRIVATE).edit()

.putInt("theme", R.style.MyTheme1).commit();

} else {

sf.getSharedPreferences("cons",Activity.MODE_PRIVATE).edit()

.putInt("theme", R.style.MyTheme2).commit();

}

//退出应用

android.os.Process.killProcess(android.os.Process.myPid());

}

});

更多相关文章

  1. Android(安卓)语言切换
  2. Android基础笔记(十)- 帧动画、补间动画详解、对话框
  3. Android(安卓)版本兼容问题(一)
  4. 设置文本边框 与 边框的样式:
  5. Android单选复选框
  6. Android混淆代码所遇到的坑
  7. Android判断是否有可用网络的代码
  8. android网络与通信(三种网络接口简述 )
  9. Android(安卓)防止设备休眠

随机推荐

  1. Android多语言切换(兼容安卓9、10)
  2. Android各个版本的新特性
  3. Android的log机制小结
  4. Android锁屏实现与总结
  5. Android(安卓)AsynTask 与Thread 或线程
  6. 【转】android 内存泄漏相关收藏博客。
  7. Android单点触控技术,对图片进行平移,缩放,
  8. 老罗的Android视频教程整理之常用布局
  9. Android---网络交互之登录嘀咕网
  10. 我的实习面经(Android开发,已拿阿里,华为,CVT