当前位置: 首页 > 知识库问答 >
问题:

将字体设置为NumberPicker

倪阳飇
2023-03-14

如何在NumberPicker中更改字体类型。我试着这样做,但字体不变。有什么想法吗?P、 S:颜色和文本大小正在更改。

public class NumberPicker extends android.widget.NumberPicker {
        private Context context;
        private Typeface tfs;
       public NumberPicker(Context context, AttributeSet attrs) {
         super(context, attrs);
         this.context = context;
         tfs = Typeface.createFromAsset(context.getAssets(),"fonts/font.ttf");
       }

       @Override
       public void addView(View child) {
         super.addView(child);
         updateView(child);
       }

       @Override
       public void addView(View child, int index, android.view.ViewGroup.LayoutParams params) {
         super.addView(child, index, params);
         updateView(child);
       }

       @Override
       public void addView(View child, android.view.ViewGroup.LayoutParams params) {
         super.addView(child, params);
         updateView(child);
       }

       private void updateView(View view) {
         if(view instanceof EditText){
           ((EditText) view).setTypeface(tfs);
           ((EditText) view).setTextSize(25);
           ((EditText) view).setTextColor(Color.RED);
         }
       }

     }

字体和路径工作正常。我将其用于自定义文本视图。

共有3个答案

司空繁
2023-03-14

在您的updateView(View view)方法中

解决方案1

private void updateView(View view) {
     if(view instanceof EditText){
       ((EditText) view).setTypeface(Typeface.SERIF);
       ((EditText) view).setTextSize(25);
       ((EditText) view).setTextColor(Color.RED);
     }

其他字体见此处。

解决方案2

如果您有自己的。ttf文件对于字体,请在资产文件夹中创建一个字体文件夹,然后将您的。ttf字体文件,然后在内部onCreate()函数写入:

Typeface type = Typeface.createFromAsset(getAssets(),"fonts/yours_font.ttf"); 
((EditText) view).setTypeface(type);

解决方案3

请参考这个SO问题,了解一种实现你想要的东西的好方法。希望这有帮助。

沈茂
2023-03-14

我通过在addView中设置字体数据解决了同样的问题,就像下面的代码一样:

public class CustomNumberPicker extends android.widget.NumberPicker {

Typeface type;

public CustomNumberPicker(Context context, AttributeSet attrs) {
    super(context, attrs);

}

@Override
public void addView(View child) {
    super.addView(child);
    updateView(child);
}

@Override
public void addView(View child, int index,
        android.view.ViewGroup.LayoutParams params) {
    super.addView(child, index, params);
    type = Typeface.createFromAsset(getContext().getAssets(),
            "fonts/b_yekan.ttf");
    updateView(child);
}

@Override
public void addView(View child, android.view.ViewGroup.LayoutParams params) {
    super.addView(child, params);

    type = Typeface.createFromAsset(getContext().getAssets(),
            "fonts/b_yekan.ttf");
    updateView(child);
}

private void updateView(View view) {

    if (view instanceof EditText) {
        ((EditText) view).setTypeface(type);
        ((EditText) view).setTextSize(25);
        ((EditText) view).setTextColor(getResources().getColor(
                R.color.text_dark_grey));
    }

}

}
常俊侠
2023-03-14

在您的样式中添加以下样式。xml。

<style name="NumberPickerCustomText">
    <item name="android:textSize">22sp</item> // add if you want to change size
    <item name="android:fontFamily">@font/lato_regular</item> // add font (this font folder is present in res folder)
</style>

直接将此样式添加到XML中的数字选择器。

android:theme="@style/NumberPickerCustomText"
 类似资料:
  • 本文向大家介绍设置字体时为什么建议设置替换字体?相关面试题,主要包含被问及设置字体时为什么建议设置替换字体?时的应答技巧和注意事项,需要的朋友参考一下 这是由于网站用户的浏览设备不同,可能并不支持或没有安装你所设置的字体。 这时候就会自动使用替换字体来对网页进行一个展示。 设置替换字体可以尽可能保证所有用户的浏览体验。

  • 问题内容: 我正在尝试获取以html格式格式化的文本片段,以在UITableViewCell中的iPhone上很好地显示。 到目前为止,我有这个: 这种作品。我得到一些加粗的“ Nice”文字!但是…它还将字体设置为Times Roman!这不是我想要的字体。我想我需要在documentAttributes中设置一些内容,但是,我在任何地方都找不到任何示例。 问题答案: 弄清楚了。有点负担,也许不

  • 目前正在练习使用android studio制作应用程序。我有这个自定义字体,并保存到res/font目录中供以后使用。在活动中,我试图使用typeface对象调用getfont(R.font.my\u customized\u font)。例如)Typeface font=getResources()。getfont(R.font.mycustomizedfont) 但是,当我尝试使用API级别

  • 我想在Java中创建一个文本编辑器。这是我到目前为止写的: 我的问题是为设置字体。当我在实际程序上单击按钮时,什么也没发生。我该怎么办?

  • (set-default-font "Verdana-10") (if window-system (set-fontset-font (frame-parameter nil 'font) 'unicode '("simsun" . "unicode-bmp")) ) 英文字体 中文字体

  • 问题内容: 更新 :对于最新的Angular版本,该问题已过时,请参阅tsh对此职位的评论 我已经将复选框绑定到一个值: 控制器中复选框的值设置为1: 但是,最初该复选框未显示为选中状态。如果我将的初始值更改为,则可以。(jsfiddle演示) 我尝试了各种变化: 他们都不工作。如何使angular将参数视为数字? 问题答案: 您可以使用 ngChecked ,如果表达式为真,则将在元素上设置特殊