2012-03-31 1 views
1

私は、を共有しているAndroid TextViewを使用してサンプルアプリケーションを作成しました。私のアプリケーションでは、いくつかのテキスト(例: "Android Font Text")を含むサンプルテキストビューがあり、フォントセットもあります。ここで私の要件は、私はtextviewをタッチすると、サンプルのダイアログがこのポップアップで表示されます私はフォントの資産フォルダの一覧を示します。フォントのいずれかを選択すると、そのフォントが正常に変更されたため、その特定のアクティビティにのみ保持されます。次のアクティビティに戻ると、テキストビューはのデフォルトスタイルにとどまります。ここでどのように私はフォントのための共有の設定を達成することができます。私はエディタでタイプフェースオブジェクトを渡すことはできません。私は、いずれかが私の問題を解決した場合どのように私は、acheiveすることができ、Android TypefaceにSharedPrefereceを使用するには?

Typeface font = Typeface.createFromAsset(getAssets(),"digit_fonts/AKEI____.TTF"); 
    font.isBold(); 
    mTextView.setTypeface(font); 
    font_editor = font_pref.edit(); 
    font_editor.putString("font_style", font.toString()); 
    font_editor.commit(); 

は、残念ながら、それは作品ではないだろう、このように使用しました。前もって感謝します。

+0

Aerrow、フォントを読み込むための一般的な方法を作成し、sharedpreferencesにフォント名を保存する –

+0

私はそれではっきりしていません。この例のいくつかを投稿してください。 – Aerrow

+0

彼が言っていることは、 font.toString()ではなく、同じものではありません。また、フォントをロードする別のメソッド、つまりgetFont(String file_name)を作成します。 – lrAndroid

答えて

0

したがって、アクティビティが開始されるたびにsharedpreferencesからフォントをロードしようとしていますか?

私はあなたが何をする必要があるか、正しくあなたを理解していた場合 1)ユーザーが(すなわち、「digit_fonts/AKEI_ _ .TTF」) 2)負荷を選択したフォントのファイル名を保存フォントは、例えば、共有環境設定で保存したファイル名を使用して:

Typeface font = Typeface.createFromAsset(getAssets(),font_pref.getString("font_style", default_font_filename)); 

通常どおりに続いてフォントを適用します。

EDIT:負荷に

font_style = font_pref.getString("font_style", null); 
if (font_style!=null){ 
    Typeface font = Typeface.createFromAsset(getAssets(),font_style); 
    font.isBold(); 
    mTextView.setTypeface(font); 
} 

保存するには:

font_editor = font_pref.edit(); 
font_editor.putString("font_style", font_style); 
font_editor.commit(); 

を見てわかるように、FONT_STYLEは実際にあなたのフォントのファイルの場所です(私がきた道上にコード化した)。ユーザーがフォントを選択すると、font_styleを変更して設定に保存します。

+0

あなたのリプレイをありがとう、申し訳ありません "default_font_filename"の代わりに、私はどの変数を使用するのですか? – Aerrow

+0

これは、 "digit_fonts/AKEI __。TTF"のようなものか、デフォルトのフォントが保存されているどこにでもあります。もう一つの選択肢は、sharedpreferencesからStringを別々に取得することです(2番目のパラメータまたはデフォルト値はすべてnullです)。上記の変数がnullと等しくない場合は、プログラムでのみフォントを設定することができます。 – lrAndroid

+0

好みを設定して環境設定を取得する正しいコードを変更して投稿してください。 – Aerrow