Android遊戲開發系統控件-ImageButton
ImageButton與Button類似,區別在於ImageButton可以自定義一張圖片作為一個按鈕;
也正因為使用圖片代替瞭按鈕,所以ImageButton按下和抬起的樣式效果需要自定義。
下面為學習ImageButton做的的實例:
創建ImageButton項目
模擬器運行效果截圖:
按下按鈕:
抬起按鈕:
項目源碼:
main.xml修改如下:
[html]
<?xml version="1.0" encoding="utf-8"?>
<LinearLayout xmlns:android="http://schemas.android.com/apk/res/android"
android:layout_width="fill_parent"
android:layout_height="fill_parent"
android:orientation="vertical" >
<ImageButton
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:id="@+id/imageBtn"
android:background="@drawable/nopress"/>
</LinearLayout>
<?xml version="1.0" encoding="utf-8"?>
<LinearLayout xmlns:android="http://schemas.android.com/apk/res/android"
android:layout_width="fill_parent"
android:layout_height="fill_parent"
android:orientation="vertical" >
<ImageButton
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:id="@+id/imageBtn"
android:background="@drawable/nopress"/>
</LinearLayout>
ImageButtonActivity.java代碼修改如下:
[java]
package com.ImageButton;
import android.app.Activity;
import android.os.Bundle;
import android.view.MotionEvent;
import android.view.View;
import android.view.View.OnTouchListener;
import android.widget.ImageButton;
public class ImageButtonActivity extends Activity {
private ImageButton Ibtn;
/** Called when the activity is first created. */
@Override
public void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
setContentView(R.layout.main);
Ibtn = (ImageButton)findViewById(R.id.imageBtn);
//為圖片按鈕添加觸屏監聽
Ibtn.setOnTouchListener(new OnTouchListener(){
public boolean onTouch(View v,MotionEvent event){
//當前用戶為按下
if(event.getAction()==MotionEvent.ACTION_DOWN){
//設置圖片按鈕背景圖
Ibtn.setBackgroundDrawable(getResources().getDrawable(R.drawable.press));
//用戶當前為抬起
}else if(event.getAction()==MotionEvent.ACTION_UP){
Ibtn.setBackgroundDrawable(getResources().getDrawable(R.drawable.nopress));
}
return false;
}
});
}
}
作者 wwj