gpt4 book ai didi

android - 自定义微调器的项目背景颜色

转载 作者:行者123 更新时间:2023-11-29 22:07:48 25 4
gpt4 key购买 nike

我正在制作一个应用程序来计算其色带之外的电阻值。在纯编程方面一切正常。目前,为了选择色带,我正在使用一个装满颜色列表的微调器。

我真的想让它看起来更好。我希望能够将微调器中每个项目的背景颜色设置为相应的颜色:

enter image description here

我应该怎么做才能实现这一目标?这是我的部分代码:

用于微调器的数组:

  <string-array name="FourBandResistorFullColor">
<item>Black</item>
<item>Brown</item>
<item>Red</item>
<item>Orange</item>
<item>Yellow</item>
<item>Green</item>
<item>Blue</item>
<item>Violet</item>
<item>Gray</item>
<item>White</item>
</string-array>

OnCreate 方法中的适配器代码:

    var bandOne = FindViewById<Spinner>(Resource.Id.bandOneColor);
var bandOneAdapter = ArrayAdapter.CreateFromResource(this, Resource.Array.FourBandResistorFullColor,
Android.Resource.Layout.SimpleSpinnerItem);
bandOneAdapter.SetDropDownViewResource(Android.Resource.Layout.SimpleSpinnerDropDownItem);
bandOne.Adapter = bandOneAdapter;
bandOne.ItemSelected += BandOne_ItemSelected;

最佳答案

您需要使用自定义适配器。我猜你正在使用 ArrayAdapter?如果是这样,您可以这样做:

    private class MyArrayAdapter extends ArrayAdapter<String>{

public MyArrayAdapter(Context context, int textViewResourceId) {
super(context, textViewResourceId);
}

@Override
public View getView(int position, View convertView, ViewGroup parent) {
View view = super.getView(position, convertView, parent);
int color = getColorFromName(getItem(position));
view.setBackgroundColor(color);
return view;
}
}

请注意,getColorFromName 是您需要自己实现的函数。它从 String 映射到一个 int 颜色值 (ARGB)。例如,红色为 0xffff0000。

关于android - 自定义微调器的项目背景颜色,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/10374675/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com