当我按下按钮时,我尝试更改按钮的大小,但似乎没有任何效果。
该按钮在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,这可能是问题吗?
答案 0 :(得分: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;
}
});
由于 迪帕克
答案 1 :(得分:2)
当您收到事件ACTION_DOWN时,如果您返回false,则无法获得ACTION_UP事件。 尝试更改
return false;
到
return true;
答案 2 :(得分:0)
onTouchListener
用于handle motion events。请尝试使用onClickListener
。
ACTION_UP 和 ACTION_DOWN 用于指示手势(请参阅here),而不是按下/释放按钮。