繁体   English   中英

Android Studio共享首选项设置字体样式

[英]Android Studio Shared Preferences Set Font Style

目前我正在尝试从列表首选项中获取输入选项,其中包含(斜体,粗体,下划线)样式,但我不太确定如何具体完成此操作。

在过去,我已成功完成了字体类型,大小和颜色。

字体类型示例:

         SharedPreferences sharedPreferences = PreferenceManager.getDefaultSharedPreferences(getApplicationContext());
    String s = sharedPreferences.getString("font_list", "gnuolane rg.ttf");
    Typeface face = Typeface.createFromAsset(getAssets(), "fonts/" + s);
    editText.setTypeface(face);

字体大小示例:

         String s2 = sharedPreferences.getString("font_size", "8");
    editText.setTextSize(Float.parseFloat(s2))

我怎样才能实现相同的想法,但使用字体样式,如Bold,Italic,Underlined?

我想你可以这样做

SharedPreferences sharedPreferences = PreferenceManager.getDefaultSharedPreferences(getApplicationContext());
int font_face = sharedPreferences.getInt("font_face", Typeface.NORMAL);
editText.setTypeface(Integer.toString(font_face));

基本上Typeface.BOLDTypeface.BOLD_ITALICTypeface.ITALICTypeface.NORMAL就是这个链接所说的int。

尝试这个。

存储字体样式

private void storeFontStyle(int style){

        SharedPreferences sharedPreferences= PreferenceManager.getDefaultSharedPreferences(getApplicationContext());
        SharedPreferences.Editor editor=sharedPreferences.edit();

        editor.putInt("font_face", style);

        editor.apply();

    }

获取字体样式

private int getFontStyle(){

    SharedPreferences sharedPreferences= PreferenceManager.getDefaultSharedPreferences(getApplicationContext());
    int font_face = sharedPreferences.getInt("font_face", Typeface.NORMAL);

    return font_face;
}

访问字体样式

int font_face=getFontStyle();

    editText.setTypeface(null, font_face);

我只能回答BOLDITALIC的问题(我认为不可能专门强调EditText ,但我可能错了):

String fontSize = sharedPreferences.getString("font_size", "8");
String style= sharedPreferences.getInt("font_style", TypeFace.NORMAL);
String font = sharedPreferences.getString("font_list", "gnuolane rg.ttf");
Typeface face = Typeface.create(Typeface.createFromAsset(getAssets(), "fonts/" + s),style);
editText.setTextSize(Float.parseFloat(fontSize ))

如您所见,样式只是Typeface中的一个整数变量,可以通过editText.getTypeface().getStyle()读取(然后保存到sharedPreferences )。

该样式的可能值为:

Typeface.NORMAL
Typeface.BOLD
Typeface.ITALIC
Typeface.BOLD_ITALIC

但为了使其工作,您必须确保您创建字体的资产支持不同的字体样式(据我所知通常不是这种情况)。

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM