Android自定义View-自定义Spinner
在使用系统Spinner时,往往总不能跟自己主题进行颜色搭配。这里介绍一下对Spinner的样式的修改,主要是对外观和颜色的修改。
效果图:
Spinner背景图片:
1.
2.
效果图中选用的是2作为的背景。
Activity中布局:在布局中定义一个Spinner控件
<Spinner
android:id="@+id/sp_Exception"
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:background="@drawable/spinner_bg"
android:layout_gravity="center_horizontal"
android:gravity="center"
android:layout_marginTop="5dp"
android:layout_marginBottom="5dp"
android:paddingRight="15dp"
android:paddingLeft="15dp" />
spinner_layout布局:这里必须是CheckedTextView。
<?xml version="1.0" encoding="utf-8"?>
<CheckedTextView xmlns:android="http://schemas.android.com/apk/res/android"
xmlns:tools="http://schemas.android.com/tools"
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:gravity="center_horizontal"
android:padding="5dp"
android:textColor="@color/stategridcolor"
android:textSize="18sp"
tools:text="全部" />
spinner_item布局:下拉列表布局,这里只展示一个textView。
<?xml version="1.0" encoding="utf-8"?>
<RelativeLayout xmlns:android="http://schemas.android.com/apk/res/android"
android:layout_width="match_parent"
android:layout_height="wrap_content"
android:background="@color/white"
android:padding="15dp" >
<TextView
android:id="@+id/spinner_item_label"
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:layout_centerInParent="true"
android:textColor="@color/stategridcolor"
android:text="全部"
android:textSize="18sp" />
</RelativeLayout>
Activity中代码使用:
...
... 省略部分代码
...
list = new ArrayList<String>();
list.add("全部 " + allCount);
list.add("采集异常 " + caiJiCount);
list.add("计量异常 " + jiLiangCount);
list.add("配电异常 " + peiDianCount);
list.add("窃电异常 " + qieDianCount);
ArrayAdapter<String> adapter = new ArrayAdapter<String>(getActivity(),R.layout.spinner_layout, list) {
@Override
public View getDropDownView(int position, View convertView, ViewGroup parent) {
View view = LayoutInflater.from(getActivity()).inflate(R.layout.spinner_item, parent, false);
TextView label = (TextView) view.findViewById(R.id.spinner_item_label);
label.setText(list.get(position));
return view;
}
};
// 设置下拉列表的样式
adapter.setDropDownViewResource(R.layout.item_spinner_daibanorder_down);
sp_Exception.setAdapter(adapter);
sp_Exception.setSelection(0);// 默认显示第一个item