欢迎您访问程序员文章站本站旨在为大家提供分享程序员计算机编程知识!
您现在的位置是: 首页

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下拉选项的高度。