Android中自定义Spinner字体大小、颜色等样式 改变下拉选项的高度

本文介绍了如何在Android中自定义Spinner的样式,包括修改字体大小、颜色以及下拉选项的高度。通过创建`custom_spinner_text_item.xml`和`custom_spinner_dropdown_item.xml`布局文件,并使用Adapter适配器进行设置,可以实现Spinner样式的个性化定制。

很简单,就是需要自己写两个自己想要的样式的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下拉选项的高度。

 

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值