如何在Android Studio中更改默认微调器的字体样式?

时间:2018-10-19 08:02:13

标签: android android-spinner

我想在Android中更改默认微调器的字体样式 请指导我如何操作。

2 个答案:

答案 0 :(得分:0)

我建议您为微调器创建一个自定义xml文件,您可以在其中根据需要设置textSize和textcolor。对于字体样式,您首先需要转到res文件夹并右键单击它,然后选择Android资源目录。在资源类型列表中,选择字体。然后将您的字体文件添加到在res下创建的字体文件夹中。然后,只需在自定义微调器XML文件中使用它即可。

android:fontFamily=@font/"name of your font file"

尝试一下可能会起作用。

答案 1 :(得分:0)

您应该使用自己的布局创建自定义ArrayAdapter。

这里是一个例子:

public class ShippingMethodSpinnerAdapter extends ArrayAdapter<YourModel> {

    public ShippingMethodSpinnerAdapter(@NonNull Context context,
                                    @NonNull List<YourModel> objects) {
        super(context, R.layout.shipping_method_spinnert_item, objects);
}

    @NonNull
    @Override
    public View getView(int position, @Nullable View convertView, @NonNull ViewGroup parent) {
        return itemView(position, convertView, parent);
    }

    @Override
    public View getDropDownView(int position, @Nullable View convertView, @NonNull ViewGroup parent) {
        return itemView(position, convertView, parent);
    }

    private View itemView(int position, View convertView, ViewGroup parent) {

        if(convertView == null) {
            convertView = LayoutInflater.from(getContext()).inflate(R.layout.shipping_method_spinnert_item,
                parent, false);
        }

        TextView txtShippingMethod = convertView.findViewById(R.id.txtShippingMethod);
        txtShippingMethod.setText(getItem(position).getTitle());

        return convertView;
    }


}

您的模型可以是这样的:

public class YourModel {

    private String title;
    private String value;

    public ShippingMethodSpinnerModel(String title, String value) {
        this.title = title;
        this.value = value;
    }

    public String getTitle() {
        return title;
    }

    public String getValue() {
        return value;
    }
}

然后将此适配器添加到微调器中

spinner.setAdapter(adapter);