设置r.style
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());
}
});
更多相关文章
- Android(安卓)语言切换
- Android基础笔记(十)- 帧动画、补间动画详解、对话框
- Android(安卓)版本兼容问题(一)
- 设置文本边框 与 边框的样式:
- Android单选复选框
- Android混淆代码所遇到的坑
- Android判断是否有可用网络的代码
- android网络与通信(三种网络接口简述 )
- Android(安卓)防止设备休眠