[英]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.BOLD
, Typeface.BOLD_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);
我只能回答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 ))
如您所見,樣式只是Typeface中的一個整數變量,可以通過editText.getTypeface().getStyle()
讀取(然后保存到sharedPreferences )。
該樣式的可能值為:
Typeface.NORMAL
Typeface.BOLD
Typeface.ITALIC
Typeface.BOLD_ITALIC
但為了使其工作,您必須確保您創建字體的資產支持不同的字體樣式(據我所知通常不是這種情況)。
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.