ImageButton------------------------------------------------>
一、Java 代碼:
在drawable目錄下添加新的xml文件 button_add_x.xmlimageButton.setOnTouchListener(new OnTouchListener(){ @Override public boolean onTouch(View v, MotionEvent event) { if(event.getAction() == MotionEvent.ACTION_DOWN){ //更改爲按下時的背景圖片 v.setBackgroundResource(R.drawable.pressed); }else if(event.getAction() == MotionEvent.ACTION_UP){ //改爲擡起時的圖片 v.setBackgroundResource(R.drawable.released); } return false; } }); 二、1)在drawable目錄下添加新的xml文件 button_add_x.xml<?xml version="1.0" encoding="UTF-8"?>
<selector xmlns:android="http://schemas.android.com/apk/res/android">
<item android:state_pressed="false" android:drawable="@drawable/button_add" />
<item android:state_pressed="true" android:drawable="@drawable/button_add_pressed" />
<item android:state_focused="true" android:drawable="@drawable/button_add_pressed" />
<item android:drawable="@drawable/button_add" />
</selector>
2)在佈局文件中寫
<ImageButton
android:id="@+id/ImageButton"
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:background="#00000000"
android:src="@drawable/button_add_x" >
</ImageButton>
Java代碼:
mBtn = (Button) findViewById(R.id.btn); //btn爲layout中的Button ID
mBtn.setOnTouchListener(new OnTouchListener() {
public boolean onTouch(View arg0,MotionEvent arg1) {
if(arg1.getAction() == MotionEvent.ACTION_DOWN) {
arg0.setBackgroundResource(R.drawable.pressed); //按下的圖片對應pressed
} else if(arg1.getAction() == MotionEvent.ACTION_UP) {
arg0.setBackgroundResource(R.drawable.normal); //常態下的圖片對應normal
}
else if() //這裏還可以繼續實現MotionEvent.ACTION_MOVE和MotionEvent.ACTION_CANCEL等實現更多的特效
return false;
}
});
改變字體顏色:和Button的區別是改變的是textColor屬性,而且selector文件定義在color
- ->
1.在layout文件中指定TextView的textColor屬性,如android:textColor="@color/textview_color";
2.在color目錄下添加新的xml文件textview_color.xml並指定TextView在各種狀態下的色值
<?xml version="1.0" encoding="utf-8"?>
<selector xmlns:android="http://schemas.android.com/apk/res/android">
<item android:state_selected="true" android:color="#FFF" />
<item android:state_focused="true" android:color="#FFF" />
<item android:state_pressed="true" android:color="#FFF" />
<item android:color="#000" />
</selector>