android改变全局字体大小

随着app越来越人性化,这就造成了需求的越加变态,这里,我想向所有移动开发的同仁说,干死需求他丫的,好了,废话说到这里,下面进入正题,如何全局改变字体大小,首先Activity继承Baseactivity:

public class MainActivity extends BaseActivity {@Overrideprotected void onCreate(Bundle savedInstanceState) {super.onCreate(savedInstanceState);setContentView(R.layout.activity_main);}}


然后在BaseActivity里做了这么一件事,

public class BaseActivity extends Activity {private int states = 3;@Overrideprotected void onCreate(Bundle savedInstanceState) {super.onCreate(savedInstanceState);if (1 == states) {setTheme(R.style.Default_TextSize_Small);} else if (2 == states) {setTheme(R.style.Default_TextSize_Middle);} else {setTheme(R.style.Default_TextSize_Big);}}}

一般情况下 我们调节全局字体大小会在app的设置菜单里,这里我们模拟大,中,小 三种字体分别为 1,2,3,很明显我们是以setTheme的方式来掌控全局字体大小,
这时候 重点来了,如何set过主题,字体大小就会发生改变呢,我们来看xml布局文件,
            

上面有3个textview,这里在textSize 属性设置的是 ?textsize ,这是什么意思呢,这里表示引用attr文件里面的属性,attrs 包含内容如下,


<?xml version="1.0" encoding="utf-8"?>            

写到这里很多人已经恍然大悟了,原来是这样,同时 因为是在set不同的主题,所以我们需要在style文件里申明,
<?xml version="1.0" encoding="utf-8"?>            

dimen里面就是我们常规设置的字体大小,

<?xml version="1.0" encoding="utf-8"?>    12sp    16sp    20sp              18sp    22sp    26sp          22sp    26sp    30sp    

当做完上述这一切的时候,我们只需要更改BaseActivity里面的states变量,就可以看出不同的字体大小效果,哇哦,搞定!




更多相关文章

  1. android listview的一些设置
  2. Android里面用XML定义菜单资源
  3. 如何将android(gingerbread)源码导入eclipse里面
  4. android关于EditText取消默认焦点及触摸其它地方去掉光标隐藏键
  5. Android使用文件管理器打开指定文件夹,浏览里面的内容
  6. 【Android】android的基本UI操作(1)
  7. Android怎样添加AT命令
  8. android 程序错误全局处理
  9. Android设置View的margin

随机推荐

  1. IDEA 快捷键 Android Studio快捷键
  2. android中handler用法总结
  3. Android期末项目(一)—— 解析二维数组对象
  4. Android中Thread,hanlder(HanlderThread),Run
  5. Android UI之对话框(dialog)
  6. Android应用界面开发_学习笔记_第二周
  7. Android最简单实现日夜间模式切换
  8. 启动android后没有应用图标,找不到应用程
  9. Error : android studio 中mipmap引用.9
  10. Android面试准备(中高级)