можно ли изменить тип шрифта Edittext, Radio Button и CheckBox в Android - PullRequest
6 голосов
/ 22 февраля 2012

Я новичок в Android. Я могу изменить тип шрифта Textview в Android. Но мне нужно использовать файл .ttf в папке активов, чтобы внести такой тип изменения шрифта.

TextView text = (TextView) layout.findViewById(R.id.text);
text.setText(msg);
Typeface font = Typeface.createFromAsset(getAssets(), "fonts/handsean.ttf");
text.setTypeface(font); 

Приведенный выше код - это то, что я использовал для изменения шрифта текста View. Но мне нужно изменить тип шрифта текста переключателя, EditText и Check box (который я также использовал в моем приложении).Пожалуйста, помогите мне здесь. Спасибо заранее.

Ответы [ 4 ]

6 голосов
/ 22 февраля 2012

Да, вы должны следовать тому же коду, который упоминался здесь. Это будет работать и для других элементов управления, таких как Edittext, CheckBox и т. Д.

5 голосов
/ 17 ноября 2016

В выбранном ответе отсутствовал код, поэтому вот оно:

EditText

EditText editText = (EditText) layout.findViewById(R.id.edittext);
editText.setText(msg);
Typeface font = Typeface.createFromAsset(getAssets(), "fonts/myfont.ttf");
editText.setTypeface(font);

RadioButton

RadioButton radioButton = (RadioButton) layout.findViewById(R.id.radiobutton);
radioButton.setText(msg);
Typeface font = Typeface.createFromAsset(getActivity().getAssets(), "fonts/myfont.ttf");
radioButton.setTypeface(font);

CheckBox

CheckBox checkBox = (CheckBox) layout.findViewById(R.id.checkbox);
checkBox.setText(msg);
Typeface font = Typeface.createFromAsset(getAssets(), "fonts/myfont.ttf");
checkBox.setTypeface(font);

Несколько представлений

Если вам нужно сделать это для нескольких представлений в вашем приложении, тогда может быть проще создать подклассвашего EditText, RadioButton или CheckBox.Этот подкласс устанавливает шрифт.Ниже приведен пример для CheckBox.

public class MyCheckBox extends CheckBox {

    // Constructors
    public MyCheckBox(Context context, AttributeSet attrs, int defStyle) {
        super(context, attrs, defStyle);
        init();
    }
    public MyCheckBox(Context context, AttributeSet attrs) {
        super(context, attrs);
        init();
    }
    public MyCheckBox(Context context) {
        super(context);
        init();
    }

    // This class requires myfont.ttf to be in the assets/fonts folder
    private void init() {
        Typeface tf = Typeface.createFromAsset(getContext().getAssets(),
                "fonts/myfont.ttf");
        setTypeface(tf);
    }
}

Может использоваться в XML следующим образом:

<com.example.projectname.MyCheckBox
    android:id="@+id/checkbox"
    android:text="@string/msg"
    android:layout_width="match_parent"
    android:layout_height="wrap_content"
    android:checked="true"/>
0 голосов
/ 22 февраля 2012

вы можете сделать это так же в .xml файле

вы можете использовать proertiees для этого

    android:textSize="20dp"
    android:textStyle="bold"
    android:textColor="any color"
    android:textAppearance="any appearencde"

вы можете использовать их с кнопками, чекбоксами и т. Д.

Вы можете сделать код также

0 голосов
/ 22 февраля 2012

Да, тот же подход будет работать и для кнопок и переключателей.
Также вы можете сделать это в простых шагах, как показано ниже

Button moreBtn = (Button) events.findViewById(R.id.promotion_event_more_btn);
FontUtils.setTypeface(this, moreBtn, Constants.C_FONT);</code><br>Where "Constants.C_FONT" is set to the path of the font file present in the assets folder.
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...