目前我试图从列表首选项中获取输入选项,其中包含(斜体,粗体,下划线)样式,但我不确定如何具体完成此操作。
过去,我已经成功完成了字体类型,大小和颜色。
字体类型示例:
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?
答案 0 :(得分:0)
我认为你可以这样做
SharedPreferences sharedPreferences = PreferenceManager.getDefaultSharedPreferences(getApplicationContext());
int font_face = sharedPreferences.getInt("font_face", Typeface.NORMAL);
editText.setTypeface(Integer.toString(font_face));
基本上Typeface.BOLD
,Typeface.BOLD_ITALIC
,Typeface.ITALIC
,Typeface.NORMAL
是this link所说的int。
答案 1 :(得分:0)
试试这个。
存储字体样式
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);
答案 2 :(得分:0)
我只能回答 BOLD 和 ITALIC 的问题(我不认为可以明确强调 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 ))
正如您所看到的,样式只是字体中的整数变量,可以通过editText.getTypeface().getStyle()
读取(然后保存到 sharedPreferences )。
该样式的可能值为:
Typeface.NORMAL
Typeface.BOLD
Typeface.ITALIC
Typeface.BOLD_ITALIC
但为了实现这一点,你必须确保你创建字体的资产支持不同的字体样式(据我所知通常不是这种情况)。