Android Studio共享首选项集字体样式
目前,我正在尝试从列表首选项中获取输入选项,其中包含(斜体、粗体、下划线)样式,但我不太确定如何具体实现这一点 在过去,我成功地做到了字体类型、大小和颜色 字体类型示例:Android Studio共享首选项集字体样式,android,android-studio,fonts,mobile-development,Android,Android Studio,Fonts,Mobile Development,目前,我正在尝试从列表首选项中获取输入选项,其中包含(斜体、粗体、下划线)样式,但我不太确定如何具体实现这一点 在过去,我成功地做到了字体类型、大小和颜色 字体类型示例: SharedPreferences sharedPreferences = PreferenceManager.getDefaultSharedPreferences(getApplicationContext()); String s = sharedPreferences.getString("f
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))
字体大小示例:
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))
我怎样才能实现同样的想法,但使用粗体、斜体、下划线等字体样式?我想你可以这样做
SharedPreferences sharedPreferences = PreferenceManager.getDefaultSharedPreferences(getApplicationContext());
int font_face = sharedPreferences.getInt("font_face", Typeface.NORMAL);
editText.setTypeface(Integer.toString(font_face));
基本上,
Typeface.BOLD
,Typeface.BOLD\u ITALIC
,Typeface.ITALIC
,Typeface.NORMAL
就是说int的。我想你可以这样做
SharedPreferences sharedPreferences = PreferenceManager.getDefaultSharedPreferences(getApplicationContext());
int font_face = sharedPreferences.getInt("font_face", Typeface.NORMAL);
editText.setTypeface(Integer.toString(font_face));
基本上是Typeface.BOLD
,Typeface.BOLD\u ITALIC
,Typeface.ITALIC
,Typeface.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);
获取字体样式
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);
访问字体样式
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);
试试这个
存储字体样式
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);
获取字体样式
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);
访问字体样式
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);
我只能回答粗体和斜体的问题(我认为不可能在编辑文本下面加下划线,但我可能错了): 如您所见,样式只是字体内部的一个整数变量,可以通过
editText.getTypeface().getStyle()
(然后保存到SharedReferences)读取
样式的可能值为:
Typeface.NORMAL
Typeface.BOLD
Typeface.ITALIC
Typeface.BOLD_ITALIC
但是,为了实现这一点,您必须确保创建字体所用的资源支持不同的字体样式(据我所知,这通常不是这种情况)。我只能回答粗体和斜体的问题(我认为不可能在EditText下面加下划线,但我可能错了): 如您所见,样式只是字体内部的一个整数变量,可以通过
editText.getTypeface().getStyle()
(然后保存到SharedReferences)读取
样式的可能值为:
Typeface.NORMAL
Typeface.BOLD
Typeface.ITALIC
Typeface.BOLD_ITALIC
但是,为了实现这一点,您必须确保创建字体的资源支持不同的字体样式(据我所知,这通常不是这种情况)。它抱怨“Typeface.Normal”和“Integer.toString(font\u face)”);既然我猜共享首选项不能将int作为第二个参数,你检查过了吗?是的。这让应用程序crashIt抱怨“Typeface.Normal”和“Integer.toString(font_face));因为我猜共享首选项不能将int作为第二个参数,你检查了吗?是的。由于某种原因,它使应用程序崩溃了,对“Typeface.NORMAL”行进行了抱怨抱歉,我现在将
getString
改为getInt
。对“Typeface.NORMAL”行进行了抱怨出于某种原因抱歉,我现在将getString
改为getInt
。