W3Cschool
恭喜您成為首批注冊(cè)用戶
獲得88經(jīng)驗(yàn)值獎(jiǎng)勵(lì)
今天給大家介紹的Android基本控件中的兩個(gè)按鈕控件,Button普通按鈕和ImageButton圖像按鈕; 其實(shí)ImageButton和Button的用法基本類似,至于與圖片相關(guān)的則和后面ImageView相同,所以本節(jié) 只對(duì)Button進(jìn)行講解,另外Button是TextView的子類,所以TextView上很多屬性也可以應(yīng)用到Button 上!我們實(shí)際開(kāi)發(fā)中對(duì)于Button的,無(wú)非是對(duì)按鈕的幾個(gè)狀態(tài)做相應(yīng)的操作,比如:按鈕按下的時(shí)候 用一種顏色,彈起又一種顏色,或者按鈕不可用的時(shí)候一種顏色這樣!上述實(shí)現(xiàn)無(wú)非是通過(guò) StateListDrawable這種Drawable資源來(lái)實(shí)現(xiàn),即編寫一個(gè)drawable的資源文件,就說(shuō)這么多, 直接開(kāi)始本節(jié)內(nèi)容~
StateListDrawable是Drawable資源的一種,可以根據(jù)不同的狀態(tài),設(shè)置不同的圖片效果,關(guān)鍵節(jié)點(diǎn) ****,我們只需要講Button的blackground屬性設(shè)置為該drawable資源即可輕松實(shí)現(xiàn),按下 按鈕時(shí)不同的按鈕顏色或背景!
我們可以設(shè)置的屬性:
- drawable:引用的Drawable位圖,我們可以把他放到最前面,就表示組件的正常狀態(tài)~
- state_focused:是否獲得焦點(diǎn)
- state_window_focused:是否獲得窗口焦點(diǎn)
- state_enabled:控件是否可用
- state_checkable:控件可否被勾選,eg:checkbox
- state_checked:控件是否被勾選
- state_selected:控件是否被選擇,針對(duì)有滾輪的情況
- state_pressed:控件是否被按下
- state_active:控件是否處于活動(dòng)狀態(tài),eg:slidingTab
- state_single:控件包含多個(gè)子控件時(shí),確定是否只顯示一個(gè)子控件
- state_first:控件包含多個(gè)子控件時(shí),確定第一個(gè)子控件是否處于顯示狀態(tài)
- state_middle:控件包含多個(gè)子控件時(shí),確定中間一個(gè)子控件是否處于顯示狀態(tài)
- state_last:控件包含多個(gè)子控件時(shí),確定最后一個(gè)子控件是否處于顯示狀態(tài)
好的,先準(zhǔn)備三個(gè)圖片背景,一般我們?yōu)榱吮苊獍粹o拉伸變形都會(huì)使用.9.png作為按鈕的drawable! 先來(lái)看下 運(yùn)行效果圖:
代碼實(shí)現(xiàn):
<?xml version="1.0" encoding="utf-8"?>
<selector xmlns:android="http://schemas.android.com/apk/res/android">
<item android:state_pressed="true" android:drawable="@drawable/ic_course_bg_fen"/>
<item android:state_enabled="false" android:drawable="@drawable/ic_course_bg_pressed"/>
<item android:drawable="@drawable/ic_course_bg_cheng"/>
</selector>
布局文件:activity_main.xml
<Button
android:id="@+id/btnOne"
android:layout_width="match_parent"
android:layout_height="64dp"
android:background="@drawable/btn_bg1"
android:text="按鈕"/>
<Button
android:id="@+id/btnTwo"
android:layout_width="match_parent"
android:layout_height="64dp"
android:text="按鈕不可用"/>
MainActivity.java:
public class MainActivity extends Activity {
private Button btnOne,btnTwo;
@Override
protected void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
setContentView(R.layout.activity_main);
btnOne = (Button) findViewById(R.id.btnOne);
btnTwo = (Button) findViewById(R.id.btnTwo);
btnTwo.setOnClickListener(new OnClickListener() {
@Override
public void onClick(View v) {
if(btnTwo.getText().toString().equals("按鈕不可用")){
btnOne.setEnabled(false);
btnTwo.setText("按鈕可用");
}else{
btnOne.setEnabled(true);
btnTwo.setText("按鈕不可用");
}
}
});
}
}
很多時(shí)候我們不一定會(huì)有美工是吧,或者我們不會(huì)PS或毀圖秀秀,又或者我們懶,不想自己去做圖, 這個(gè)時(shí)候我們可以自己寫代碼來(lái)作為按鈕背景,想要什么顏色就什么顏色,下面我們來(lái)定制個(gè)圓角的 的按鈕背景~,這里涉及到另一個(gè)drawable資源:ShapeDrawable,這里不詳細(xì)講,后面會(huì)詳細(xì)介紹每一個(gè) drawable~這里會(huì)用就好,只是EditText修改下Background屬性而已,這里只貼drawable資源!
先看下效果圖:
?bbuton_danger_rounded.xml:?
<?xml version="1.0" encoding="utf-8"?> <selector xmlns:android="http://schemas.android.com/apk/res/android"> <item android:state_pressed="true"><shape> <solid android:color="@color/bbutton_danger_pressed" /> <stroke android:width="1dp" android:color="@color/bbutton_danger_edge" /> <corners android:radius="@dimen/bbuton_rounded_corner_radius"/> </shape></item> <item android:state_enabled="false"><shape> <solid android:color="@color/bbutton_danger_disabled" /> <stroke android:width="1dp" android:color="@color/bbutton_danger_disabled_edge" /> <corners android:radius="@dimen/bbuton_rounded_corner_radius"/> </shape></item> <item><shape> <solid android:color="@color/bbutton_danger" /> <stroke android:width="1dp" android:color="@color/bbutton_danger_edge" /> <corners android:radius="@dimen/bbuton_rounded_corner_radius"/> </shape></item> </selector>
?color.xml:?
<?xml version="1.0" encoding="utf-8"?> <resources> <color name="bbutton_danger_pressed">#ffd2322d</color> <color name="bbutton_danger_edge">#ffd43f3a</color> <color name="bbutton_danger_disabled">#a5d9534f</color> <color name="bbutton_danger_disabled_edge">#a5d43f3a</color> <color name="bbutton_danger">#ffd9534f</color> <color name="text_font_white">#FFFFFF</color> </resources>
dimens.xml:
<dimen name="bbuton_rounded_corner_radius">5dp</dimen>
Copyright©2021 w3cschool編程獅|閩ICP備15016281號(hào)-3|閩公網(wǎng)安備35020302033924號(hào)
違法和不良信息舉報(bào)電話:173-0602-2364|舉報(bào)郵箱:jubao@eeedong.com
掃描二維碼
下載編程獅App
編程獅公眾號(hào)
聯(lián)系方式:
更多建議: