Android设置全局字体大小,实现小中大字体功能

很多app有这种需求,实现字体小中大字体设置,仿照QQ的字体。经过测试,下面代码完美实现,需要重启APP才能生效。

Android设置全局字体大小,实现小中大字体功能_第1张图片

上核心代码

public class MainActivity extends Activity {
@InjectView(R.id.btn_skip1)
Button btnSkip1;
@InjectView(R.id.btn_skip2)
Button btnSkip2;
@InjectView(R.id.btn_skip3)
Button btnSkip3;

@Override
public void onCreate( Bundle savedInstanceState) {
    super.onCreate(savedInstanceState);
    int state = SpUtils.getSPValue(this,"s",1);
    if(state==1){
        setTheme(R.style.Default_TextSize_Small);
    }else if(state==2){
        setTheme(R.style.Default_TextSize_Middle);
    }else{
        setTheme(R.style.Default_TextSize_Big);
    }

    setContentView(R.layout.activity_main);
    ButterKnife.inject(this);
}


@OnClick({R.id.btn_skip1, R.id.btn_skip2, R.id.btn_skip3})
public void onClick(View view) {
    switch (view.getId()) {
        case R.id.btn_skip1:
            SpUtils.putSPValue(this,"s",1);
            break;
        case R.id.btn_skip2:
            SpUtils.putSPValue(this,"s",2);
            break;
        case R.id.btn_skip3:
            SpUtils.putSPValue(this,"s",3);
            break;
    }
}

}

布局文件




    

    

    


    

新建attrs文件,定义字体属性



    
    
    
    
    
    
    
    
    
    

自定义style属性







定义dimen文件

21sp
20sp
19sp
18sp
17sp
16sp
15sp
14sp
13sp
12sp
11sp
10sp
9sp

就是这样子,谢谢阅览。有其他问题欢迎留言,也可以小小打赏一下哦,你的鼓励是我最大的进步。

邮箱:[email protected]

Android设置全局字体大小,实现小中大字体功能_第2张图片

你可能感兴趣的:(Android)