【问题标题】:Android spinner for custom font用于自定义字体的 Android 微调器
【发布时间】:2023-03-20 11:55:01
【问题描述】:

我遇到的问题是我想在以下编码中为 android spinner 添加自定义字体。我已经尝试过使用 ArrayAdapter 但还不能成功。谢谢。

private void loadSpinner() {
        List<String> list = new ArrayList<String>();
        list.add("1");
        list.add("2");
        list.add("3");
        list.add("4");
        list.add("5");
        list.add("6");
        list.add("7");
        list.add("8");      
        list.add("9");
        ArrayAdapter<String> dataAdapter = new ArrayAdapter<String>(this, android.R.layout.simple_spinner_item, list);
        dataAdapter.setDropDownViewResource(android.R.layout.simple_spinner_dropdown_item);
        cmbStage.setAdapter(dataAdapter);
        cmbStage.setOnItemSelectedListener(new AdapterView.OnItemSelectedListener() {
            public void onItemSelected(AdapterView<?> parent, View view, int pos, long id) {
                Object item = parent.getItemIdAtPosition(pos + 1);
                currentID = Integer.parseInt(item.toString()); 
            }
            public void onNothingSelected(AdapterView<?> parent) {
            }
        });        
    }

【问题讨论】:

  • 勾选这个stackoverflow.com/questions/15299194/…并在上面的例子中为Textview应用自定义字体
  • 以上编码,Dropdown文字无法更改。
  • 我没听明白...您要动态更改项目文本吗?
  • Nope.. 我想将 Typeface 字体更改为其他字体,而不是 android 系统默认字体。

标签: android android-spinner


【解决方案1】:

您可以通过自己的自定义SpinnerAdaptergetView()getDropDownView() 应用字体

public View getView(int position, View convertView, ViewGroup parent) {

    LayoutInflater inflater = getLayoutInflater();
            View row = inflater.inflate(yourRowlayout, parent,
                    false);
       TextView make = (TextView) row.findViewById(R.id.Make);
        Typeface myTypeFace = Typeface.createFromAsset(context.getAssets(),
                "fonts/gilsanslight.otf");
        v.setTypeface(myTypeFace);
        v.setText(itemList.get(position));
        return row;
    }


public View getDropDownView(int position, View convertView, ViewGroup parent) {

        LayoutInflater inflater = getLayoutInflater();
                View row = inflater.inflate(yourRowlayout, parent,
                        false);
           TextView make = (TextView) row.findViewById(R.id.Make);
            Typeface myTypeFace = Typeface.createFromAsset(context.getAssets(),
                    "fonts/gilsanslight.otf");
            v.setTypeface(myTypeFace);
            v.setText(itemList.get(position));
            return row;
        }

【讨论】:

  • @ppshein 没有任何前任。但是在你的适配器类中,你必须只做 getDropDownView() 并将它设置在你设置适配器的类中。
猜你喜欢
  • 2014-10-13
  • 2023-03-03
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 2021-05-13
  • 2014-03-08
  • 1970-01-01
相关资源
最近更新 更多