-
自定义Applicaiton,实现全局App修改,对于字体也是同理,通过Typeface设置加载App全局字体,对于自定义的Applicaiton需在AndroidManifest.xml的<application>tag这个标签中进行设置.
public class App extends Application { private static final String TAG = "软件商店"; public static Typeface typeFace; @Override public void onCreate() {// Application启动时调用 // TODO Auto-generated method stub super.onCreate(); setTypeface(); } public void setTypeface() { // 微软雅黑,加载外部字体assets/front/huawen_caiyun.ttf typeFace = Typeface.createFromAsset(getAssets(), "fonts/mi_font.ttf"); try { Field field_3 = Typeface.class.getDeclaredField("SANS_SERIF"); field_3.setAccessible(true); field_3.set(null, typeFace); } catch (NoSuchFieldException e) { e.printStackTrace(); } catch (IllegalAccessException e) { e.printStackTrace(); } } }
-
自定义Applicaiton的Theme,在Values文件夹下style文件下自定义Theme,并且设置<item name="android:typeface">sans</item>属性
<style name="AppTheme" parent="@android:style/Theme.NoTitleBar"> <item name="android:typeface">sans</item> <!-- All customizations that are NOT specific to a particular API-level can go here. --> </style>
这里android:typeface可以设置的仅仅有normal、sans、serif、monospace可以设置,因为我在SetAppTypeface类中设置的是Typeface.class.getDeclaredField("SANS_SERIF");所以我这里便设置成sans,如果getDeclaredField()设置的是其他的类型,则要选择同类型的其他诸如serif、monospace等等
-
在AndroidManifest.xml的<application>标签中使用自定义Theme
<application android:allowBackup="true" android:name=".App" android:icon="@drawable/ic_launcher" android:label="@string/app_name" android:theme="@style/AppTheme" > <activity android:name=".MainActivity" android:label="@string/app_name" > <intent-filter> <action android:name="android.intent.action.MAIN" /> <category android:name="android.intent.category.LAUNCHER" /> </intent-filter> </activity> </application>
反射方式修改App字体
最后编辑于 :
©著作权归作者所有,转载或内容合作请联系作者
- 文/潘晓璐 我一进店门,熙熙楼的掌柜王于贵愁眉苦脸地迎上来,“玉大人,你说我怎么就摊上这事。” “怎么了?”我有些...
- 文/花漫 我一把揭开白布。 她就那样静静地躺着,像睡着了一般。 火红的嫁衣衬着肌肤如雪。 梳的纹丝不乱的头发上,一...
- 文/苍兰香墨 我猛地睁开眼,长吁一口气:“原来是场噩梦啊……” “哼!你这毒妇竟也来了?” 一声冷哼从身侧响起,我...