В выбранном ответе отсутствовал код, поэтому вот оно:
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"/>