2011-05-31 128 views
3

我嘗試在按按鈕時更改我的按鈕的大小,但似乎沒有任何工作。在Android中按下時更改按鈕大小的問題

該按鈕main.xml中創建:

<?xml version="1.0" encoding="utf-8"?> 
<RelativeLayout xmlns:android="http://schemas.android.com/apk/res/android" 
android:layout_width="fill_parent" 
android:layout_height="fill_parent"> 

<Button 
android:layout_alignParentLeft="true" 
android:layout_height="90px" 
android:id="@+id/button1" 
android:layout_marginTop="120px" 
android:layout_width="90px"   
android:textSize="45px" 
android:textStyle="bold" 
android:background="@drawable/bnumber" 
android:text="1"> 
</Button> 

而且按鈕邏輯的代碼是:

button1.setOnTouchListener(new View.OnTouchListener() { 
     @Override 
     public boolean onTouch(View v, MotionEvent event) { 
      if(event.getAction() == MotionEvent.ACTION_DOWN) { 
       sendMessage("key1\n"); 
       button1.setWidth(140); 
       button1.setHeight(140); 
      } 
      if(event.getAction() == MotionEvent.ACTION_UP) { 
       button1.setWidth(90); 
       button1.setHeight(90); 
      } 
      return false; 
     } 
    }); 

從谷歌上搜索我敢肯定這應該工作,但由於某種原因它沒有。

我的設備使用Android 1.6,這可能是問題嗎?

回答

3

您可以使用下面的代碼來設置按鈕的寬度和高度

button1.setOnTouchListener(new View.OnTouchListener() { 
    @Override 
    public boolean onTouch(View v, MotionEvent event) { 
     RelativeLayout.LayoutParams lp = (LayoutParams) b.getLayoutParams(); 
     if(event.getAction() == MotionEvent.ACTION_DOWN) { 
      sendMessage("key1\n"); 
      lp.width=140; 
      lp.height=140; 
      button1.setLayoutParams(lp); 
     } 
     if(event.getAction() == MotionEvent.ACTION_UP) { 
      lp.width=90; 
      lp.height=90; 
      button1.setLayoutParams(lp); 
     } 
     return false; 
    } 
}); 

由於設置按鈕的寬度和高度 迪帕克

+0

這正是我正在尋找的,謝謝! – 2011-05-31 10:02:50

+0

非常歡迎 – 2011-05-31 10:10:02

0

onTouchListener用於handle motion events。請嘗試使用onClickListener

ACTION_UPACTION_DOWN用於指示手勢(見here)中,不按/釋放按鈕。

+0

問題'onClickListener'是郵件在發佈後發送的按下按鈕,而不是按下按鈕。 – 2011-05-31 07:22:04

2

當您收到事件ACTION_DOWN時,如果返回false,則無法獲取ACTION_UP事件。 嘗試改變

return false; 

return true; 
+0

謝謝你,它運作良好。 – 2011-05-31 10:02:13