मैं अपने ऐप में डिफ़ॉल्ट फ़ॉन्ट बदलने की कोशिश कर रहा हूं। लेकिन यह काम नहीं कर रहा है।एंड्रॉइड ऐप में डिफ़ॉल्ट फ़ॉन्ट बदलने में असमर्थ
1) बनाया वर्ग TypefaceUtil.java
import android.content.Context;
import android.graphics.Typeface;
import android.util.Log;
import java.lang.reflect.Field;
public class TypefaceUtil {
public static void overrideFont(Context context, String defaultFontNameToOverride, String customFontFileNameInAssets) {
try {
final Typeface customFontTypeface = Typeface.createFromAsset(context.getAssets(), customFontFileNameInAssets);
final Field defaultFontTypefaceField = Typeface.class.getDeclaredField(defaultFontNameToOverride);
defaultFontTypefaceField.setAccessible(true);
defaultFontTypefaceField.set(null, customFontTypeface);
} catch (Exception e) {
Log.e("CustomFontException", "Can not set custom font " + customFontFileNameInAssets + " instead of " + defaultFontNameToOverride);
}
}
}
2) एक वर्ग का विस्तार आवेदन में:
public void onCreate() {
super.onCreate();
TypefaceUtil.overrideFont(getApplicationContext(), "MONOSPACE", "fonts/varelaround_regular.ttf");
}
3) में शैलियों ये कदम मैं ले लिया है कर रहे हैं। xml
<style name="AppTheme" parent="Theme.AppCompat.Light.DarkActionBar">
<item name="android:typeface">monospace</item>
</style>
अभी भी यह काम नहीं कर रहा है। क्या मैं कुछ भूल रहा हूँ ?
जोड़े अजीब, मैंने एक ही कोड का इस्तेमाल किया और यह मेरे लिए ठीक काम कर रहा था। केवल अंतर यह है कि मैंने 'मोनोस्पेस' के बजाय 'सेरिफ़' का उपयोग किया। –