Android原生Spinner如何更改字體大小

自定義一個Spinner適配器

  • 這裏有個奇怪的事情不知道怎麼解釋 我在spinner中tv.setTextSize(14f)的時候,設置的數值單位就是dp,比如我想設置字體是14dp 這裏我如果通過工具類dp2px計算後傳給TextView 就會不正確,反而是直接設置爲14 就能得到想要的效果
public class MySpinnerAdapter extends ArrayAdapter<String> {

    private Context mContext;

    /**
     * spinner綁定的數組
     */
    private String[] mStringArray;

    /**
     *
     * @param context Context對象
     * @param stringArray spinner綁定的數組
     */
    public MySpinnerAdapter(Context context, String[] stringArray) {
        super(context, android.R.layout.simple_spinner_item, stringArray);
        mContext = context;
        mStringArray = stringArray;
    }
    //這裏是Spinner展開後的文字修改
    @Override
    public View getDropDownView(int position, View convertView, ViewGroup parent) {
        if (convertView == null) {
            LayoutInflater inflater = LayoutInflater.from(mContext);
            convertView = inflater.inflate(android.R.layout.simple_spinner_dropdown_item, parent, false);
        }
        TextView tv = (TextView) convertView.findViewById(android.R.id.text1);
        tv.setText(mStringArray[position]);
        tv.setTextSize(14f);

        return convertView;

    }

    //這裏是Spinner收起後的文字修改
    @Override
    public View getView(int position, View convertView, ViewGroup parent) {
        if (convertView == null) {
            LayoutInflater inflater = LayoutInflater.from(mContext);
            convertView = inflater.inflate(android.R.layout.simple_spinner_item, parent, false);
        }
        TextView tv = (TextView) convertView.findViewById(android.R.id.text1);
        tv.setText(mStringArray[position]);
        tv.setTextSize(14f);
        //tv.setTextColor(Color.BLUE);
        return convertView;
    }

}

在使用Spinner的時候需要重新給spinner設置自定義的適配器。

發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章