设置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());

            }

           

        });

 

 

 

  • 0
    点赞
  • 1
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值