【问题标题】:Android Custom Spinner each colorAndroid Custom Spinner 每种颜色
【发布时间】:2014-04-28 07:02:12
【问题描述】:

我想要一个微调器中的颜色列表,我该怎么做?我不想将 RGB 代码存储在数据库中,您可以直接从 XML 中进行操作吗?你推荐哪种方式?

【问题讨论】:

  • 您必须创建一个自定义Adapter 才能执行此操作。

标签: android row spinner


【解决方案1】:

您可以像这样使用自定义Adapter

private class ExampleAdapter extends ArrayAdapter<String> {

    private final int[] colors = new int [] {
            Color.WHITE,
            Color.RED,
            Color.BLUE
    };

    private ExampleAdapter(Context context, int resource) {
        super(context, resource);
    }

    private ExampleAdapter(Context context, int resource, int textViewResourceId) {
        super(context, resource, textViewResourceId);
    }

    public ExampleAdapter(Context context, int resource, String[] objects) {
        super(context, resource, objects);
    }

    private ExampleAdapter(Context context, int resource, int textViewResourceId, String[] objects) {
        super(context, resource, textViewResourceId, objects);
    }

    private ExampleAdapter(Context context, int resource, List<String> objects) {
        super(context, resource, objects);
    }

    private ExampleAdapter(Context context, int resource, int textViewResourceId, List<String> objects) {
        super(context, resource, textViewResourceId, objects);
    }

    @Override
    public View getView(int position, View convertView, ViewGroup parent) {
        View view = super.getView(position, convertView, parent);

        int color = getColorForPosition(position);
        view.setBackgroundColor(color);

        return view;
    }

    private int getColorForPosition(int position) {
        return colors[position % colors.length];
    }
}

您可以像使用任何ArrayAdapter 一样使用此ExampleAdapter,但项目将在顶部定义的背景颜色之间循环。

【讨论】:

    猜你喜欢
    • 2016-10-01
    • 2012-04-06
    • 2016-09-03
    • 1970-01-01
    • 1970-01-01
    • 2012-08-06
    • 1970-01-01
    • 1970-01-01
    • 2016-08-07
    相关资源
    最近更新 更多