[Android Studio 30天自我挑战] 变更Spinner字体及背景样式

Spinner选项的字体大小及背景都是可以更改的!
但Spinner的字体样式及背景无法像Textview在activity_main元件里直接设定

1.先於activity_main.xml新增Spinner元件

    <Spinner
        android:layout_width="wrap_content"
        android:layout_height="wrap_content"
        android:id="@+id/spinner"/>

2.新增一个设定Spinner的字体大小及背景的xml档,於app/res/layout/(新增一个xml档)

<?xml version="1.0" encoding="utf-8"?>
<TextView
    xmlns:android="http://schemas.android.com/apk/res/android" 
    android:layout_width="match_parent"
    android:layout_height="match_parent"
    //设定字体大小
    android:textSize="24sp"
    //设定文字颜色
    android:textColor="#FF0000FF"
    //设定背景颜色
    android:background="#ffd5d5"
    //设定字体样式
    android:textStyle="bold"
    android:padding="5dp">
</TextView>

3.再新增一个设定Spinner选项列样式的xml档,於app/res/layout/(新增一个xml档)

<?xml version="1.0" encoding="utf-8"?>
<TextView
    xmlns:android="http://schemas.android.com/apk/res/android"
    android:layout_width="match_parent"
    android:layout_height="match_parent"
    //设定字体大小
    android:textSize="24dp"
    //设定文字颜色
    android:textColor="#FFFF0000"
    //设定背景颜色
    android:background="#ffd5d5"
    //设定字体样式
    android:textStyle="bold"
    android:padding="13dp">
</TextView>

4.设定完样式後到MainActivity.java宣告Spinner并新增选项

Spinner spinner = findViewById(R.id.spinner);
List<String> country = Arrays.asList("Taiwan","Japan","Korean","America");

5.新增ArrayAdapter来放入List及样式

//R.layout.选择你新增的Spinner外观的xml档名
ArrayAdapter adapter = new ArrayAdapter(getApplicationContext(), R.layout.my_selected_item , country);
//R.layout.选择你新增的Spinner选项列外观的xml档名
adapter.setDropDownViewResource(R.layout.my_dropdown_item);
spinner.setAdapter(adapter);

这样就可以变更你的Spinner字体样式及背景颜色罗!
https://ithelp.ithome.com.tw/upload/images/20210819/20139258uHMWwGGaOn.png
https://ithelp.ithome.com.tw/upload/images/20210819/20139258ffYStqrr8O.png

完整MainActivity.java程序码

package com.example.itspinner;

import androidx.appcompat.app.AppCompatActivity;

import android.os.Bundle;
import android.util.AndroidException;
import android.widget.ArrayAdapter;
import android.widget.Spinner;

import java.util.Arrays;
import java.util.List;

public class MainActivity extends AppCompatActivity {

    @Override
    protected void onCreate(Bundle savedInstanceState) {
        super.onCreate(savedInstanceState);
        setContentView(R.layout.activity_main);

        Spinner spinner = findViewById(R.id.spinner);
        List<String> country = Arrays.asList("Taiwan","Japan","Korean","America");
        ArrayAdapter adapter = new ArrayAdapter(getApplicationContext(), R.layout.my_selected_item , country);
        adapter.setDropDownViewResource(R.layout.my_dropdown_item);
        spinner.setAdapter(adapter);
    }
}

<<:  [DAY05] 在 Azure Machine Learning 上建立运算资源

>>:  CSS微动画 - Loading来了!七彩霓虹灯

[Day29] 悬浮视窗提醒

这次要来教的是如何制作一个悬浮视窗的提醒,这个功能在许多目前市面上常用的APP上都能看到,例如:Li...

从 IT 技术面细说 Search Console 的 27 组数字 KPI (11) :网页体验

在 Search Console 的概述中,第一个项目是流量成效,第二个项目是涵盖范围的有效网页数,...

Day10 用python写UI-聊聊文字方块Entry

耶~~~终於迈入第十天,完成了三分之一,今天要来讲文字方块,普遍常会看到的用法会在输入号密码的时候,...

Day16 JavaScript基本教学(一)

JavaScript 语言 (JavaScript Programming Language) Ja...

[3D地图-CesiumJS系列] 二、建立飞航轨迹及动画

本篇文章请搭配 [3D地图-CesiumJS系列] 一、快速上手 不知道大家在飞机上时会不会好奇飞机...