2011-07-22 47 views
3

我想讓用戶選擇字體大小。如何在我自己的android應用程序中設置字體比例?

備件確實提供的功能來做到這一點,

ActivityManagerNative.getDefault()。updateConfiguration(新字體大小規模配置)

但這是整個所有的Android應用程序。我想將其添加到我的應用程序的首選項中,並且僅影響我的應用程序。

我嘗試了下面的方法,它有時會起作用,但是第一次啓動我的應用程序時,字體大小依然爲1.0。我不知道爲什麼。我在每個onCreate的活動中添加了以下代碼。

Configuration config = resources.getConfiguration(); config.fontScale = 1.5F; resources.updateConfiguration(config,mDisplayMetrics);

我該怎麼辦?

+0

你找到了這個答案嗎?我目前遇到同樣的問題... – dineth

+0

請參閱Activity.getResources()。setConfiguration()(或類似的東西) – njzk2

回答

0

我想你在找什麼是一個主題應用到您的活動或查看

請看看android的文檔Themes

12

下面的代碼將允許更改應用程序隻字體比例。 第二行代碼「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); 

希望這有助於與前一步0.15縮放,其默認的1

地方吧!

+0

不要在您的Application類的OnConfigurationChanged中使用它;一些設備我似乎嚇壞了,在旋轉時無法控制地閃爍。把它放在你的super.onCreate後似乎工作得很好,而OnConfigurationChanged會再次調用你的onCreate,所以如果用戶決定在你的應用程序中間改變字體的話你就會被設置。 – welshk91

相關問題