gpt4 book ai didi

android - 如何用图像而不是文本创建微调器?

转载 作者:IT王子 更新时间:2023-10-28 23:29:25 25 4
gpt4 key购买 nike

鉴于下面的代码,是否可以在行星数组中使用图像而不是文本?

    Spinner s = (Spinner) findViewById(R.id.spinner);    
ArrayAdapter adapter = ArrayAdapter.createFromResource(
this, R.array.planets, android.R.layout.simple_spinner_item);
adapter.setDropDownViewResource(android.R.layout.simple_spinner_dropdown_item);
s.setAdapter(adapter);

    <string name="planet_prompt">Choose a planet</string>
<string-array name="planets">
<item>Mercury</item>
<item>Venus</item>
<item>Earth</item>
<item>Mars</item>
<item>Jupiter</item>
<item>Saturn</item>
<item>Uranus</item>
<item>Neptune</item>
</string-array>

最佳答案

我只需要一个 super 简单的解决方案来处理微调器中的一组固定图像,所以我这样做了:

public class SimpleImageArrayAdapter extends ArrayAdapter<Integer> {
private Integer[] images;

public SimpleImageArrayAdapter(Context context, Integer[] images) {
super(context, android.R.layout.simple_spinner_item, images);
this.images = images;
}

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

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

private View getImageForPosition(int position) {
ImageView imageView = new ImageView(getContext());
imageView.setBackgroundResource(images[position]);
imageView.setLayoutParams(new AbsListView.LayoutParams(ViewGroup.LayoutParams.WRAP_CONTENT, ViewGroup.LayoutParams.WRAP_CONTENT));
return imageView;
}

}

然后在代码中你可以像这样使用它:

    SimpleImageArrayAdapter adapter = new SimpleImageArrayAdapter(context, 
new Integer[]{R.drawable.smiley1, R.drawable.smiley2, R.drawable.smiley3, R.drawable.smiley4, R.drawable.smiley5});
spinner.setAdapter(adapter);

关于android - 如何用图像而不是文本创建微调器?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/3609231/

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