標籤:
/*********************************************************************** * 修改Android系統字型大小 * 說明: * 本來以為直接修改了Settings裡面的系統字型大小就可以了,結果發現字型大小變 * 大了之後,Lancher中app的名字被截掉了一半,下面一半無法顯示,之後又 * 為瞭解決這個問題,找到AppsCustomize相關配置。 * * 2016-5-12 深圳 南山平山村 曾劍鋒 **********************************************************************/一、參考文章: 1. android4.1 修改預設字型大小 http://blog.csdn.net/yicao821/article/details/8733493 2. Android 如何修改系統預設字型大小 http://www.tuicool.com/articles/vi6Fra 3. Launcher裡面修改應用表徵圖以及應用表徵圖對應的字型大小 http://blog.csdn.net/pishum/article/details/20524413?utm_source=tuicool&utm_medium=referral 4. android更改案頭icon容納個數以及布局大小 http://blog.csdn.net/guoguo295/article/details/12772531 二、修改Android系統字型大小: 1. cat frameworks/base/core/java/android/content/res/Configuration.java public final class Configuration implements Parcelable, Comparable<Configuration> { ...... public void setToDefaults() { fontScale = 1.7f; // default was 1.0f mcc = mnc = 0; locale = null; userSetLocale = false; ...... } ...... } 2. cat packages/apps/Settings/res/values/arrays.xml <resources xmlns:xliff="urn:oasis:names:tc:xliff:document:1.2"> <string-array name="entries_font_size"> <item msgid="6490061470416867723">Small</item> <item msgid="3579015730662088893">Normal</item> <item msgid="1678068858001018666">Large</item> <item msgid="490158884605093126">Huge</item> </string-array> <string-array name="entryvalues_font_size" translatable="false"> <!-- <item>0.85</item> <item>1.0</item> <item>1.15</item> <item>1.30</item> --> <item>1.15</item> <item>1.30</item> <item>1.50</item> <item>1.70</item> </string-array> </resources>三、修改Launcher中應用程式名稱字型顯示不完整: 1. 由於上面的修改,到時app的名字只顯示了上面一半,下面一半被截掉了; 2. 查看哪些檔案和app_icon_size有關: [email protected]:~/myandroid/packages/apps/Launcher2/res$ grep app_icon_size * -R layout-land/launcher.xml: android:layout_height="@dimen/app_icon_size" values/dimens.xml: <dimen name="app_icon_size">48dp</dimen> values-sw600dp/dimens.xml: <dimen name="app_icon_size">64dp</dimen> values-sw720dp/dimens.xml: <dimen name="app_icon_size">72dp</dimen> 3. 由於不知道系統使用了那個dimens.xml檔案,於是索性將app_icon_size全部修改一致: 1. 全部改成80dp,結果表徵圖變大了,完全看不到app的名字; 2. 全部改成48dp,結果表徵圖變小了,app名字全部顯示出來了; 3. 推論:每個表徵圖+app name在一個固定大小的範圍裡,所以接下來要尋找到那個固定範圍是在哪裡描述的。 4. 根據上面情況進行定位,最後可以確定,系統使用如下目錄中的配置: packages/apps/Launcher2/res/values-sw720dp/ 5. 故可知,app表徵圖大小修改一定在:packages/apps/Launcher2/res/values-sw720dp/dimens.xml 6. 可能的修改為: cat packages/apps/Launcher2/res/values-sw720dp/dimens.xml ...... <resources> ...... <!-- AppsCustomize --> <dimen name="apps_customize_cell_width">96dp</dimen> <dimen name="apps_customize_cell_height">96dp</dimen> <integer name="apps_customize_maxCellCountX">-1</integer> <integer name="apps_customize_maxCellCountY">-1</integer> <dimen name="all_apps_button_vertical_padding">4dip</dimen> ...... <!-- Workspace cell size --> <dimen name="workspace_cell_width_land">96dp</dimen> <dimen name="workspace_cell_width_port">96dp</dimen> <dimen name="workspace_cell_height_land">96dp</dimen> <dimen name="workspace_cell_height_port">96dp</dimen> <dimen name="workspace_width_gap_land">50dp</dimen> <dimen name="workspace_width_gap_port">0dp</dimen> <dimen name="workspace_height_gap_land">16dp</dimen> <dimen name="workspace_height_gap_port">70dp</dimen> </resources> ...... 7. 經過確認,最終程式採用了的設定是: cat packages/apps/Launcher2/res/values-sw720dp/dimens.xml <resources> <dimen name="apps_customize_cell_width">96dp</dimen> <dimen name="apps_customize_cell_height">96dp</dimen> </resources> 8. 修改如下: cat packages/apps/Launcher2/res/values-sw720dp/dimens.xml <resources> <dimen name="apps_customize_cell_width">120dp</dimen> <dimen name="apps_customize_cell_height">120dp</dimen> </resources>四、為什麼橫向是5個app顯示: 1. cat packages/apps/Launcher2/res/values-sw720dp/config.xml <resources> <integer name="cell_count_x">8</integer> <integer name="cell_count_y">5</integer> ... </resources> 2. 從這裡可以看出來貌似我們的程式有點不對勁,因為我們是橫向5個,縱向8個,相反了; 3. 測試改成每行4個app: <resources> <integer name="cell_count_x">8</integer> <integer name="cell_count_y">4</integer> ... </resources>
修改Android系統字型大小