【问题标题】:Customizing spinner font [closed]自定义微调器字体[关闭]
【发布时间】:2023-03-03 14:16:01
【问题描述】:

我有一个带有简单列表的微调器。我想知道是否可以替换微调器中的字体样式。或者无论如何我可以用来改变字体样式、大小和颜色。

非常感谢您提供的任何许可。

【问题讨论】:

    标签: android spinner


    【解决方案1】:

    没试过,但 XML 中的 android:typeface 或代码中的 setTypeface() 应该可以工作。

    编辑:请遵循here的指导。

    首先,在您的 res/layout 目录中创建一个名为“my_spinner_style.xml”的新 XML 文件,并放入类似以下内容的内容:

    android:layout_width="fill_parent"
    android:layout_height="wrap_content"
    android:textSize="9pt"
    android:singleLine="True"
    android:id="@+id/spinnerTarget"
    android:textColor="#000000"
    android:gravity="center"/>
    

    然后在您的代码中,使用如下内容:

    Spinner mySpinner = (Spinner) findViewById(R.id.my_spinner);
    mySpinnerArrayAdapter = new MyCustomArrayAdapter(this, R.layout.my_spinner_style);  
    mySpinnerArrayAdapter.setDropDownViewResource(android.R.layout.simple_spinner_dropdown_item);
    

    通常您会为第二行创建一个新的 ArrayAdapter,但在这种情况下,您需要创建一个自定义 ArrayAdapter 并覆盖从我们的自定义微调器样式中获取 TextView 的方法。

    因此,您需要为您的自定义 ArrayAdapter 输入代码,如下所示:

    private class MyArrayAdapter extends ArrayAdapter {
    
        public MyArrayAdapter(Context context, int textViewResourceId) {
            super(context, textViewResourceId);
        }
    
        public TextView getView(int position, View convertView, ViewGroup parent) {
            TextView v = (TextView) super.getView(position, convertView, parent);
            v.setTypeface(myFont);
            return v;
        }
    
        public TextView getDropDownView(int position, View convertView, ViewGroup parent) {
            TextView v = (TextView) super.getView(position, convertView, parent);
            v.setTypeface(myFont);
            return v;
        }
    
    }
    

    您要使用的字体需要位于 assets/fonts 目录中,您可以这样访问它:

    Typeface myFont = Typeface.createFromAsset(getAssets(), "fonts/myfont.ttf");
    

    差不多就是这样。

    【讨论】:

    • 这就是我的问题所在。微调器中没有 android:typeface。
    • 对。解决方案比我想象的更复杂。我找到了一些解决方法herehere。我希望这会有所帮助。
    • 这很酷.. 谢谢。我所期待的。
    猜你喜欢
    • 2023-03-20
    • 1970-01-01
    • 2014-10-13
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2019-02-07
    • 1970-01-01
    • 2014-06-09
    相关资源
    最近更新 更多