卜若的代码笔记-android系列-插件:带图片的Spinner插件 1.该插件是我自己封装了一下提高用户体验具体解释请转以下https://blog.csdn.net/Zaajuan1150/article/details/817048652.插件封装package com.draw.depp.deeplearningdrawer.Plugins.ImageSpinnerPlugins; import android.content.Context; import android.view.View; import android.widget.AdapterView; import android.widget.SimpleAdapter; import android.widget.Spinner; import com.draw.depp.deeplearningdrawer.R; import com.draw.depp.deeplearningdrawer.Tool.CarColorUtil; import com.draw.depp.deeplearningdrawer.Tool.Debug; import java.util.ArrayList; import java.util.HashMap; import java.util.List; import java.util.Map; public class ImageAdapter extends SimpleAdapter { public Context ct; public ImageAdapter(Context context, List? extends MapString, ? data, int resource, String[] from, int[] to) { super(context, data, resource, from, to); ct context; } public static ImageAdapter createImageAdapter(Context ctt,ListMapString, Object dataMap){ ImageAdapter adp new ImageAdapter(ctt, dataMap, R.layout.spinner_2_example, new String[] { image, text }, new int[] {R.id.colorview, R.id.textview }); return adp; } public static ListMapString,Object mapList new ArrayList(); public static ImageAdapter createImageAdapter(Context ct2){ ListMapString,Object l2 new ArrayList(); for (Map k: mapList ) { l2.add(k); } mapList.clear(); ImageAdapter i2 createImageAdapter(ct2,l2); return i2; } public static void addSpinner(String textValue,Object obj){ MapString,Object m2 new HashMapString,Object(); m2.put(text,textValue); m2.put(image,obj); mapList.add(m2); } }3.使用到的资源R.layout.spinner_2_example?xml version1.0 encodingutf-8? LinearLayout xmlns:androidhttp://schemas.android.com/apk/res/android android:layout_widthmatch_parent android:layout_heightwrap_content android:orientationhorizontal android:gravitycenter ImageView android:idid/colorview android:layout_width20dp android:layout_height20dp android:layout_marginLeft10dp android:srcmipmap/ic_launcher / TextView android:idid/textview android:layout_widthmatch_parent android:layout_height40dp android:gravitycenter|left android:paddingLeft10dp android:textSize15dp / /LinearLayout4.调用Spinner spinner findViewById(R.id.type); ImageAdapter.addSpinner(广州,R.mipmap.ic_launcher); ImageAdapter.addSpinner(贵阳,R.mipmap.ic_launcher); ImageAdapter.addSpinner(华西,R.mipmap.ic_launcher); ImageAdapter adp ImageAdapter.createImageAdapter(MainActivity.this); spinner.setAdapter(adp);5.预览6.关于怎么抽出text的值一个自写解析器package com.draw.depp.deeplearningdrawer.Plugins.ImageSpinnerPlugins; public class ImageAdapterAnalyser { public String analyserValue ; public String[] analyserList ; public String text; public String image; public ImageAdapterAnalyser(String key){ this.analyserValue key; char[] charArray new char[key.length() - 2]; int index 0; for (char a : analyserValue.toCharArray()){ if (a {){ continue; } if(a }){ continue; } charArray[index] a; index; } analyserValue new String(charArray); analyserList analyserValue.split(,); image analyserList[0].split()[1].trim(); text analyserList[1].split()[1].trim(); } }7.解析调用spinner.setOnItemSelectedListener(new AdapterView.OnItemSelectedListener() { Override public void onItemSelected(AdapterView? parent, View view, int position, long id) { String content parent.getItemAtPosition(position).toString(); Debug.Log(new ImageAdapterAnalyser(content).text); type content; }