簡體   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