Change font for EditText in Android?

前端 未结 8 966
梦谈多话
梦谈多话 2020-12-10 10:17

Is there any way to change the font for a EditText in Android? I want it to match the font\'s I set for all my textViews.

8条回答
  •  臣服心动
    2020-12-10 10:57

    Solution1:: Just call these method by passing parent view as argument.

    private void overrideFonts(final Context context, final View v) {
        try {
            if (v instanceof ViewGroup) {
                ViewGroup vg = (ViewGroup) v;
                for (int i = 0; i < vg.getChildCount(); i++) {
                    View child = vg.getChildAt(i);
                    overrideFonts(context, child);
             }
            } else if (v instanceof EditText) {
                ((TextView) v).setTypeface(Typeface.createFromAsset(context.getAssets(), "font.ttf"));
            }
        } catch (Exception e) {
     }
    }
    

    Solution2:: you can subclass the TextView class with your custom font and use it instead of textview.

    public class MyEditView extends EditText{
    
        public MyEditView(Context context, AttributeSet attrs, int defStyle) {
            super(context, attrs, defStyle);
            init();
        }
    
        public MyEditView(Context context, AttributeSet attrs) {
            super(context, attrs);
            init();
        }
    
        public MyEditView(Context context) {
            super(context);
            init();
        }
    
        private void init() {
            if (!isInEditMode()) {
                Typeface tf = Typeface.createFromAsset(getContext().getAssets(), "font.ttf");
                setTypeface(tf);
            }
        }
    
     }
    

提交回复
热议问题