2011-07-22 4 views
3

ユーザーがフォントサイズを選択できるようにしたい。自分のアンドロイドアプリケーションでフォントスケールを設定する方法は?

スペアパーツは、

ActivityManagerNative.getDefault()という。updateConfiguration(新しいフォントサイズのスケールの設定)

を行うための機能を提供しませんが、それは全体のすべてのAndroidアプリケーションのためです。私はアプリケーションの設定でそれを追加したいだけで、私のアプリケーションには影響があります。

私は以下の方法を試してみましたが、時々動作しますが、アプリケーションを初めて起動したときにフォントサイズは1.0のままです。私はなぜそうではありません。私は私の活動のすべてのonCreateのコードの下に追加しました。

設定config = resources.getConfiguration(); config.fontScale = 1.5f; resources.updateConfiguration(config、mDisplayMetrics);

どうすればよいですか?

+0

これについての回答が見つかりましたか?私は現時点で同じ問題を抱えています... – dineth

+0

Activity.getResources()。setConfiguration()(またはそのようなもの) – njzk2

答えて

0

私は何を探していることはあなたの活動やビュー

にテーマを適用することだと思いアンドロイドドキュメントThemes

12

以下のコードを見てみてくださいアプリケーションだけのために変更することができますフォントスケール。 2行目のコード "configuration.fontScale =(float)1;"あなたのニーズを満たすために気をつけなければならないでしょう。デフォルトはsetContentView(R.layout.yourlayout)このことができます

Configuration configuration = getResources().getConfiguration(); 
configuration.fontScale=(float) 1; //0.85 small size, 1 normal size, 1,15 big etc 

DisplayMetrics metrics = new DisplayMetrics(); 
getWindowManager().getDefaultDisplay().getMetrics(metrics); 
metrics.scaledDensity = configuration.fontScale * metrics.density; 
getBaseContext().getResources().updateConfiguration(configuration, metrics); 

希望を呼び出す前に置き1.

デフォルト持つ、0.15ステップでそれをスケーリングしています!

+0

アプリケーションクラスのOnConfigurationChangedでこれを使用しないでください。私が持っているいくつかのデバイスは、回転しているときには不安定に点滅しているようです。あなたのsuper.onCreateがうまく動いているように見えて、OnConfigurationChangedがあなたのonCreateをもう一度呼び出すので、ユーザーがアプリケーションの途中でフォントを変更することにした場合に設定されます。 – welshk91

関連する問題