2017-02-22 11 views
1

現在、私は(Italic、Bold、Underlined)スタイルを持つリスト設定から入力選択を取得しようとしていますが、これを具体的に達成する方法はあまりよく分かりません。Androidスタジオの共有設定は、フォントスタイルを設定

これまで、フォントの種類、サイズ、色については成功しました。

フォントの種類例:

  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)) 

どのように私は同じ考えを達成することができますが、そのような太字、斜体、下線などのフォントスタイル、と? this linkが言ったように

答えて

0

私はTypeface.ITALICTypeface.BOLD_ITALICTypeface.BOLD基本的に

あなたがこの方法を行うことができます
SharedPreferences sharedPreferences = PreferenceManager.getDefaultSharedPreferences(getApplicationContext()); 
int font_face = sharedPreferences.getInt("font_face", Typeface.NORMAL); 
editText.setTypeface(Integer.toString(font_face)); 

を考えて、Typeface.NORMALはintです。

+0

何らかの理由で "Typeface.NORMAL"という行が文句を言う – EzioBahin

+0

申し訳ありません、私は 'getString'を' getInt'に修正しました。 – bismute

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); 
+0

「Typeface.Normal」と「Integer.toString(font_face)」に文句を言っています; – EzioBahin

+0

共有環境設定が第2のパラメータとしてintを取ると思われるので – EzioBahin

+0

私は私の答えが変わった –

0

私は唯一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)) 

あなたが見ることができるように、スタイルはで読み取られ(そしてsharedPreferencesに保存されます)の整数内の変数タイプフェイスです。

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

しかし、これは動作するために、あなたは通常されていない(あなたからあなたのフォントを作成している資産は、異なるフォントスタイルをサポートしていることを確認する必要があります:スタイルのための

可能な値は、私の知る限り)。