如何在 Android 中动态地、以编程方式应用 FontSize,而不使用 XML?

Ach*_*ver 1 fonts android font-size

可能的重复:
如何以编程方式更改整个应用程序中的字体大小,Android?

这是我的代码:我创建了带有 FontSize 选项列表的 Spinner。如果我单击 FontSize“26”,那么它应该能够更改该特定的 FontSize。下面我有一个编辑框。因此,如果我将 Fontsize 设置为 40,并且使用斜体样式,而不是通常的粗体。所以我应该能够在 EditBox 中输入所选的“字体”:FontSize“40”和斜体样式。

我如何在 Android 中以编程方式执行此操作?

font=new Spinner(con);
option= new String[] {"Select Font Size","8","10","12","14","16","18","20",
                      "22","24","26","28","30","32","34","36","38","40","50"};
ArrayAdapter<String> adapter= new ArrayAdapter<String>(con,android.R.layout.simple_spinner_dropdown_item,option);
adapter.setDropDownViewResource(android.R.layout.simple_spinner_dropdown_item);

font.setOnItemSelectedListener(new OnItemSelectedListener() {
    @Override
    public void onItemSelected(AdapterView<?> arg0, View arg1,int position, long id) {
        option[1]="8";
       selectedItem= option[position];
    }
    @Override
    public void onNothingSelected(AdapterView<?> arg0) {
    }
});
Run Code Online (Sandbox Code Playgroud)

Col*_*ire 5

改变

文字大小的使用editText.setTextSize(20)

字体和样式的使用editText.setTypeface(yourTypeFace, Typeface.BOLD)

更新

public class MyEditText extends EditText{

public MyEditText(Context context) {
    super(context);
    init();
}

public MyEditText(Context context, AttributeSet attrs, int defStyle) {
    super(context, attrs, defStyle);
    init();
}
public MyEditText(Context context, AttributeSet attrs) {
    super(context, attrs);
    init();
}
void init() {
   this.setTextSize(20);
   this.setTypeface(yourTypeFace, Typeface.BOLD);
}

// method to change font settings
void setFont(TypeFace tf){
   this.setTypeFace(tf);
}
//add whatever method you want
}
Run Code Online (Sandbox Code Playgroud)

然后不要使用此类,而是EditText使用此类,并且不要忘记在 XML 中使用

<yourpackage.MyEditText
     android:layout_height=".."
     android:layout_width=".."
     ... />
Run Code Online (Sandbox Code Playgroud)