一开始学Spinner的时候,网上绝大数资料就是随便一写带过,很少有提到自定义款式的。要不然就不是满意的效果,当然,此篇也只仅供参考,不一定是你要的效果。没有用到style,所以没法更深度的定制,但是我觉得听美观的了。说了那么多废话,下面进入正题吧~
一、分析一下结构
很简单,主Activity和一个自定义的Spinner的Adapter,布局的话,主布局和Spinner的两个款式布局(选中框和下拉框) 效果如下:
二、首先,写我们的适配器Adapter
我们让其继承至ArrayAdapter,<E>写作CharSequence,这个是字符队列。算作是String的子类,String可以强转,前者用tostring方法向上转型。接着,我们写入构造方法。
</pre><pre name="code" class="java">private Context context;
private int resourceId;
private ViewHolder holder;
private int currentIndex = -1;
private int[] pics = { R.drawable.shengdan01, R.drawable.shengdan02,
R.drawable.shengdan03, R.drawable.shengdan04,
R.drawable.shengdan05, R.drawable.shengdan06 };
public SpinnerAdapter(Context context, int resource,
CharSequence[] itemCharSequences) {
super(context, resource, itemCharSequences);
this.context = context;
this.resourceId = resource;
}
我顺便把要申明的变量列出来了。
接着,重写两个方法getView和getDropDownView
@Override
public View getDropDownView(int position, View convertView, ViewGroup parent) {
View view=LayoutInflater.from(context).inflate(R.layout.spinner_drop_item, n