Button繼承自TextView,所以TextView的一些屬性同樣也適用于Button控件。
Button的直接子類為CompoundButton。Button的間接子類有CheckButton、RadioButton、Switch和ToggleButton。
1.Button常用屬性設(shè)置
1.1設(shè)置Button的背景顏色
要設(shè)置Button按鈕的背景顏色,可以通過在xml文件中設(shè)置android:background屬性實(shí)現(xiàn),同樣也可以通過在代碼中使用setBackgroundColor()方法來實(shí)現(xiàn)。
<Button
android:id="@+id/button1"
android:layout_width="match_parent"
android:layout_height="wrap_content"
android:text="按鈕一:設(shè)置按鈕背景顏色為黃色"
android:background="#ffff00" />
1.2設(shè)置Button的文字顏色
要設(shè)置Button按鈕的文字顏色,可以通過在xml文件中設(shè)置android:textColor屬性實(shí)現(xiàn),同樣也可以通過在代碼中使用setTextColor()方法來實(shí)現(xiàn)。
<Button
android:id="@+id/button2"
android:layout_width="match_parent"
android:layout_height="wrap_content"
android:text="按鈕二:設(shè)置按鈕文字顏色為紅色"
android:textColor="#ff0000" />
1.3設(shè)置Button的文字格式
要設(shè)置Button按鈕的文字格式,可以通過在xml文件中設(shè)置android:textStyle屬性實(shí)現(xiàn)。其中,參數(shù)italic表示斜體,參數(shù)bold表示粗體。
<Button
android:id="@+id/button3"
android:layout_width="match_parent"
android:layout_height="wrap_content"
android:text="按鈕三:設(shè)置按鈕文字斜體"
android:textStyle="italic" />
1.4設(shè)置Button的背景圖片
要設(shè)置Button按鈕的背景圖片,可以通過在xml文件中設(shè)置android:background屬性實(shí)現(xiàn),同樣也可以通過在代碼中使用setBackgroundResource()方法來實(shí)現(xiàn)。
<Button
android:id="@+id/button4"
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:text="按鈕四"
android:background="@drawable/android_logo" />
1.5效果圖
上述四種Button常用屬性效果如圖1所示。

圖1 Button常用屬性設(shè)置效果圖
2.Button事件監(jiān)聽器
Button的常用事件監(jiān)聽器有以下一些:
mButton.setOnClickListener();//點(diǎn)擊事件監(jiān)聽器
mButton.setOnTouchListener();//觸摸事件監(jiān)聽器
mButton.setOnFocusChangeListener();//焦點(diǎn)狀態(tài)改變事件監(jiān)聽器
mButton.setOnKeyListener();//按鍵事件監(jiān)聽器
mButton.setOnLongClickListener();//常壓事件監(jiān)聽器
這些事件監(jiān)聽器可以用來響應(yīng)對(duì)Button按鈕的不同操作,使用方法比較簡(jiǎn)單,此處就不多介紹了。
3.Button按鈕圖文混排
如何在Button按鈕中實(shí)現(xiàn)圖文混排效果,以滿足豐富的Button式樣需求呢?這里簡(jiǎn)單介紹兩種方法。
3.1通過設(shè)置android:drawableTop等屬性來實(shí)現(xiàn)
在xml文件中,想要實(shí)現(xiàn)圖片環(huán)繞文字的效果,可以通過設(shè)置以下四個(gè)屬性來實(shí)現(xiàn)。
android:drawableTop設(shè)置文字上方顯示的圖片
android:drawableBottom設(shè)置文字下方顯示的圖片
android:drawableLeft顯示文字左邊顯示的圖片
android:drawableRight顯示文字右邊顯示的圖片
通過設(shè)置以上四個(gè)屬性,便可以很輕松的實(shí)現(xiàn)圖片環(huán)繞文字的效果了,一個(gè)簡(jiǎn)單的demo源代碼如下。
demo code
3.2通過SpannableString類對(duì)象來實(shí)現(xiàn)
除上述方法外,我們也可以通過使用SpannableString類來實(shí)現(xiàn)Button按鈕的圖文混排效果,具體實(shí)現(xiàn)步驟如下:
首先,我們需要?jiǎng)?chuàng)建一個(gè)SpannableString對(duì)象,目的是用來插入用ImageSpan對(duì)象封裝好的圖像。
其次,我們還需要?jiǎng)?chuàng)建一個(gè)Bitmap對(duì)象,并通過資源Id取得要使用的圖像。再將該Bitmap圖像用ImageSpan對(duì)象封裝起來。
然后,通過使用SpannableString類的setSpan()方法加載該ImageSpan對(duì)象。
最后,通過使用Button控件的append()方法來加載SpannableString對(duì)象即可。
通過上述四個(gè)步驟也同樣可以實(shí)現(xiàn)圖片環(huán)繞文字的效果,一個(gè)簡(jiǎn)單的demo源代碼如下。
demo code
3.3效果圖
上述兩個(gè)demo的運(yùn)行結(jié)果如圖2所示。由圖可以看出,通過上述兩種方式可以達(dá)到相同的Button按鈕圖文混排效果。

圖2 Button按鈕的圖文混排效果