可以在Android中更改Edittext,Radio Button和CheckBox的字体类型

时间:2012-02-22 07:04:17

标签: android checkbox radio-button android-edittext

我是android的初学者。我可以在Android中更改Textview的字体类型。但我必须在资产文件夹中使用.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和复选框(我也在我的应用程序中使用)的文本的字体类型。 Plz帮帮我。谢谢你提前。

5 个答案:

答案 0 :(得分:6)

是的,你必须遵循你在这里提到的相同代码。这对其他控件也很有用,比如Edittext,CheckBox等。

答案 1 :(得分:5)

所选答案缺少代码,所以这里是:

<强>的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) layout.findViewById(R.id.radiobutton);
radioButton.setText(msg);
Typeface font = Typeface.createFromAsset(getActivity().getAssets(), "fonts/myfont.ttf");
radioButton.setTypeface(font);

复选框

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

多个视图

如果您需要为整个应用程序中的多个视图执行此操作,则可能更容易创建EditTextRadioButtonCheckBox的子类。此子类设置字体。以下是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"/>

答案 2 :(得分:0)

是的,同样的方法也适用于按钮和单选按钮。
您也可以通过以下简单步骤完成此操作

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.

答案 3 :(得分:0)

你也可以在.xml文件中这样做

你可以使用proertiees这样做

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

你可以使用按钮,checbox等等。

你也可以通过代码来做

答案 4 :(得分:0)

确保您的支持库> = 26.0或在项目中使用AndroidX。然后将此行添加到XML视图中

      app:fontFamily="@font/myFontFamily"

例如:

  <RadioButton
      android:layout_width="wrap_content"
      android:layout_height="wrap_content"
      android:id="@+id/language_english"
      android:text="@string/english"
      app:fontFamily="@font/myFontFamily"
      />

如果要使用自定义字体,请阅读官方文档: https://developer.android.com/guide/topics/ui/look-and-feel/fonts-in-xml