simple_spinner_item這些基本模板,但有時想改變Spinner內的文字大小及顏色又不知從哪下手
今天就來教大家怎麼改變Spinner內的文字大小及顏色,當然也包含對齊方式
我用比較簡單的方法直接由Layout下手去修改Spinner內文字的字體大小及顏色
步驟一:
在res-->layout內新增一個myspinner.xml的android xml檔,貼上下列程式碼
myspinner.xml
<?xml version="1.0" encoding="utf-8"?> <TextView xmlns:android="http://schemas.android.com/apk/res/android" android:id="@android:id/text1" android:layout_width="match_parent" android:layout_height="wrap_content" android:ellipsize="marquee" android:gravity="center" android:paddingLeft="8dip" android:singleLine="true" android:textColor="#8B008B" android:textSize="32sp" android:textStyle="bold" > </TextView>
步驟二:
回到java程式碼,假設我們已經在main.xml中加入一個下拉選單spinner1了
基本的下拉選單都是這樣寫的:
//將可選内容與ArrayAdapter連接起來 adapter = new ArrayAdapter<String>(this,android.R.layout.simple_spinner_item,Blood_group); //對應控件 spinner = (Spinner) findViewById(R.id.spinner1); //設置下拉列表的風格 adapter.setDropDownViewResource(android.R.layout.simple_spinner_dropdown_item); //將adapter 添加到spinner中 spinner.setAdapter(adapter);
換成下面這個樣子:
//將可選内容與ArrayAdapter連接起來 adapter = new ArrayAdapter<String>(this,R.layout.myspinner,Blood_group); //對應控件 spinner = (Spinner) findViewById(R.id.spinner1); //設置下拉列表的風格 adapter.setDropDownViewResource(R.layout.myspinner); //將adapter 添加到spinner中 spinner.setAdapter(adapter);
為什麼有兩個地方是要換成myspinner的呢?
因為adapter是代表內容(也就是下拉時)
setDropDownViewResource是代表點選下拉時彈出的樣式
執行後畫面
文字被我改為紫色、字體大小變32、置中對齊
這樣簡簡單單兩個步驟就能改變下拉選單的三種樣式設定了
以上介紹,謝謝各位!!
ps:貼上一些參數(spinner、adapter、Blood_group)的宣告,不然新手會對應不起來
private Spinner spinner; private ArrayAdapter<String> adapter; private static final String[] Blood_group={"A型","B型","O型","AB型","其他"};
google了很多,看了你的才明白
回覆刪除謝謝
刪除真的..
刪除我在網路上也看了一堆教學 每個都講一半而已
我剛在這試立刻就搞定了....
真的是太神了,看了你的才懂
刪除感謝樓主的教學
回覆刪除經過測試後有些論點與樓主不同
首先Adpater是靜止時的樣式
setDropDownViewResource才是設定下拉時的樣式
並且如果沒有呼叫setDropDownViewResource()時
預設會直接與靜止時所取得的樣式相同
所以要下拉與靜止相同,只需要使用
adapter = new ArrayAdapter(this,R.layout.myspinner,Blood_group);即可
若想要有新的樣式
則再依照樓主的方式建立新的xml檔
然後呼叫setDropDownViewResource()方法建立下拉時的樣式
有錯請指正
感謝您幫忙抓到了錯誤
刪除您說的是正確的
setDropDownViewResource是指下拉時出現的樣式
是我的筆誤,感謝指教!
very good! 好sample! 講解得很好
回覆刪除謝謝拉~
回覆刪除Very good! Thank you!
回覆刪除