app字体大小设置

 app需要添加修改整体字体的功能,总结一下实现步骤。
 
1.新建一个属性文件,在value文件夹下创建attr.xml文件
2.这里定义了三种字体大小,可以根据需求增删
有几种字体需要根据主题变化就设置几个
<?xml version="1.0" encoding="utf-8"?>
<resources>
  
    <attr name="fontsize_1" format="dimension"></attr>
    <attr name="fontsize_2" format="dimension"></attr>
    <attr name="fontsize_3" format="dimension"></attr>
   
</resources>
 
3.在style文件中定义四种theme,可根据需求增删,字体特大、大、中、小三个theme
 <style name="Theme_Small">
        <item name="fontsize_1">@dimen/pad_text_size_16</item>
        <item name="fontsize_2">@dimen/pad_text_size_14</item>
        <item name="fontsize_3">@dimen/pad_text_size_12</item>
 
    </style>

    <style name="Theme_Medium">
        <item name="fontsize_1">@dimen/pad_text_size_18</item>
        <item name="fontsize_2">@dimen/pad_text_size_16</item>
        <item name="fontsize_3">@dimen/pad_text_size_14</item>
    </style>
    <style name="Theme_Large">
        <item name="fontsize_1">@dimen/pad_text_size_20</item>
        <item name="fontsize_2">@dimen/pad_text_size_18</item>
        <item name="fontsize_3">@dimen/pad_text_size_16</item>
    </style>
    <style name="Theme_Largest">
        <item name="fontsize_1">@dimen/pad_text_size_24</item>
        <item name="fontsize_2">@dimen/pad_text_size_22</item>
        <item name="fontsize_3">@dimen/pad_text_size_20</item>
    </style>
<给相应的控件设置对应的style,,有几个属性就写几个style>
<style name="title_text"> <item name="android:textSize">?@attr/fontsize_1</item> </style> <style name="subtitle_text"> <item name="android:textSize">?@attr/fontsize_2</item> </style> <style name="article_text"> <item name="android:textSize">?@attr/fontsize_3</item> </style>
 
例如:
<TextView
                android:id="@+id/tv_remember_password"
                android:layout_width="wrap_content"
                android:layout_height="wrap_content"
                android:layout_centerInParent="true"
                android:drawableLeft="@drawable/activity_login_select_bg"
                android:drawablePadding="@dimen/pad_height_6"
                android:text="fontsize_1"
                android:textColor="#666"
                style="@style/title_text"  />
              
              <TextView
                android:id="@+id/tv_remember_password"
                android:layout_width="wrap_content"
                android:layout_height="wrap_content"
                android:layout_centerInParent="true"
                android:drawableLeft="@drawable/activity_login_select_bg"
                android:drawablePadding="@dimen/pad_height_6"
                android:text="fontsize_2"
                android:textColor="#666"
                style="@style/subtitle_text"  />
              <TextView
                android:id="@+id/tv_remember_password"
                android:layout_width="wrap_content"
                android:layout_height="wrap_content"
                android:layout_centerInParent="true"
                android:drawableLeft="@drawable/activity_login_select_bg"
                android:drawablePadding="@dimen/pad_height_6"
                android:text="fontsize_3"
                android:textColor="#666"
                style="@style/article_text
最后在activity设置主题
在setconvertview之前设置主题
public static void initData(Context context){
		int mode = (Integer) SpUtils.get(context, "fontSize", -1);
		if(mode==-1||mode==1){
			context.setTheme(R.style.Theme_Small);
		}else if(mode==2){
			context.setTheme(R.style.Theme_Medium);
		}else if(mode==3){
			context.setTheme(R.style.Theme_Large);
		}
	}
	
这里通过sharedpreferenes保存相应的设置值,可以在设置是存入当前主题值

 
 
    
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值