Android中自定义Spinner字体大小、颜色等样式 改变下拉选项的高度
程序员文章站
2022-07-04 16:25:43
...
很简单,就是需要自己写两个自己想要的样式的xml布局文件,然后通过Adapter适配器设置就好了。
MainActivity.java 代码:
import androidx.appcompat.app.AppCompatActivity;
import android.os.Bundle;
import android.view.View;
import android.widget.AdapterView;
import android.widget.ArrayAdapter;
import android.widget.Spinner;
import java.util.ArrayList;
import java.util.List;
public class MainActivity extends Activity implements OnItemSelectedListener {
private Spinner mspinner1;
private Spinner mspinner2;
@Override
protected void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
setContentView(R.layout.activity_main);
mspinner1 = (Spinner) findViewById(R.id.spinner1);
if (mspinner1!=null){
mspinner1.setOnItemSelectedListener(this);
}
mspinner2 = (Spinner) findViewById(R.id.spinner2);
if (mspinner2!=null){
mspinner2.setOnItemSelectedListener(this);
}
//在这里两个layout自己定义效果,不用系统自带
//数据源手动添加
ArrayAdapter<String> spinnerAdapter = new ArrayAdapter<String>(this,
R.layout.custom_spinner_text_item,getDataSource());
mspinner1.setAdapter(spinnerAdapter);
//通过加载xml文件配置的数据源
ArrayAdapter spinnerAdapter2 = ArrayAdapter.createFromResource(this,
R.array.FirstMountPointOptions,R.layout.custom_spinner_text_item);
//设置下拉选项的方式
spinnerAdapter2.setDropDownViewResource(R.layout.custom_spinner_dropdown_item);
mspinner2.setAdapter(spinnerAdapter2);
}
public List<String> getDataSource(){
List<String> spinnerList = new ArrayList<String>();
spinnerList.add("北京");
spinnerList.add("上海");
spinnerList.add("广州");
spinnerList.add("深圳");
spinnerList.add("天津");
spinnerList.add("香港");
return spinnerList;
}
@Override
public void onItemSelected(AdapterView<?> parent, View view, int position, long id) {
}
@Override
public void onNothingSelected(AdapterView<?> parent) {
}
}
需要自己新建两个下代码所示的xml布局文件:
custom_spinner_text_item.xml:
<?xml version="1.0" encoding="utf-8"?>
<TextView xmlns:android="http://schemas.android.com/apk/res/android"
android:id="@+id/textviewCustom"
style="?android:attr/spinnerItemStyle"
android:layout_width="match_parent"
android:layout_height="match_parent"
android:ellipsize="marquee"
android:singleLine="true"
android:textAlignment="inherit"
//设置颜色
android:textColor="#222288"
//设置字体
android:textSize="14sp"
>
</TextView>
custom_spinner_dropdown_item.xml:
<?xml version="1.0" encoding="utf-8"?>
<CheckedTextView xmlns:android="http://schemas.android.com/apk/res/android"
android:id="@+id/checkedTextViewCustom"
style="?android:attr/spinnerDropDownItemStyle"
android:layout_width="match_parent"
//设置下拉选项的高度
android:layout_height="35dp"
android:ellipsize="marquee"
android:singleLine="true"
android:textAlignment="inherit"
android:textColor="#222288"
android:textSize="14sp"
>
</CheckedTextView>
上面的两个xml布局文件,改变的样式有字体的大小、颜色,还有spinner下拉选项的高度。