spinner默认显示的字体颜色为纯黑色,在一些情况下,我们想要改变这种颜色,但是却发现在spinner的属性里面并没有setTextColor类似这样的属性,也就是说我们无法简单的直接设置其内部字体的颜色。
通过查找资料,我们可以通过使用adapter的方式来实现我们想要的效果。
效果如图:
代码如下:
1、写一个单独的布局文件personal_spinner.xml,里面只包含一个TextView,其作用是用来设置Spinner内文字的属性,比如大小、颜色等。
<?xml version="1.0" encoding="utf-8"?>
<TextView xmlns:android="http://schemas.android.com/apk/res/android"
android:id="@android:id/text1"
android:textColor="#909295"
android:textSize="14sp"
android:layout_width="match_parent"
android:layout_height="wrap_content"
/>
2、在activity_main.xml中定义一个spinner,因为要实现上图效果,做了一些简单的布局(只需注意spinner即可)
<RelativeLayout xmlns:android="http://schemas.android.com/apk/res/android"
xmlns:tools="http://schemas.android.com/tools"
android:layout_width="match_parent"
android:layout_height="match_parent"
android:paddingBottom="@dimen/activity_vertical_margin"
android:paddingLeft="@dimen/activity_horizontal_margin"
android:paddingRight="@dimen/activity_horizontal_margin"
android:paddingTop="@dimen/activity_vertical_margin"
tools:context=".MainActivity" >
<LinearLayout
style="@style/personal_edittext_style" >
<TextView
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:layout_gravity="center_vertical"
android:text="密保问题"
android:textColor="#ffffff"
android:textSize="16sp"
android:padding="10dp"/>
<LinearLayout
android:layout_width="match_parent"
android:layout_height="match_parent"
android:background="#ffffff"
android:layout_margin="4dp"
>
<Spinner
android:id="@+id/personal_pay_spinner"
android:layout_width="0dip"
android:layout_height="wrap_content"
android:layout_gravity="center_vertical"
android:paddingLeft="4dp"
android:layout_weight="1"
android:background="#00000000"
android:entries="@array/password_protection" />
<ImageView
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:layout_gravity="center_vertical"
android:paddingRight="4dp"
android:src="@drawable/personal_more_more" />
</LinearLayout>
</LinearLayout>
</RelativeLayout>
3、在MainActivity中,使用ArrayAdapter进行绑定
//引用arrays中的选项
String[] curs = getResources().getStringArray(R.array.password_protection);
//将写好的personal_spinner引用进来,此时改变的是选中后的情况,如果这里不想修改,可引用Android默认的布局,
//比如android.R.layout.simple_spinner_item
ArrayAdapter<String> adapter = new ArrayAdapter<String>(this,
R.layout.personal_spinner, curs);
//此处修改的部分为 点击后弹出的选择框,同上可引用自己写的布局文件,也可以使用默认布局,此处使用的是默认布局
adapter.setDropDownViewResource(android.R.layout.simple_spinner_dropdown_item);
mSpinner.setAdapter(adapter);
mSpinner.setOnItemSelectedListener(new OnItemSelectedListener(){
@Override
public void onItemSelected(AdapterView<?> parent, View view,
int position, long id) {
position++;
//点击处理事件
}
@Override
public void onNothingSelected(AdapterView<?> parent) {
}
});
好了完工,奉上示例代码 点击打开链接