我想创建一个形状或按钮,但是当它被单击时,它会将事件发送到它后面的视图。我已经使用了 onInterceptTouchEvent,但事件仍然是由按钮而不是视图来获取的。这是我的代码:
<?xml version="1.0" encoding="utf-8"?>
<RelativeLayout android:id="@+id/RelativeLayout01"
android:layout_width="fill_parent"
android:layout_height="fill_parent"
xmlns:android="http://schemas.android.com/apk/res/android"
android:background="@drawable/background">
<com.Example.MultitouchView
android:id="@+id/touchView"
android:layout_width="fill_parent"
android:layout_height="fill_parent"
android:background="#FF0000" />
<Button
android:id="@+id/btnDo"
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:background="@drawable/bg1"
android:text="Test"
android:textSize="20sp"
android:textColor="#110342" >
</Button>
</RelativeLayout>
MultitouchView.class
public class MultitouchView extends View {
private boolean isMultiTouch = false;
private static final int SWIPE_MIN_LENGHT = 100;
private static final long MULTITOUCH_DELAY = 500;
private long mTouchStart;
public MultitouchView(Context context) {
super(context);
// TODO Auto-generated constructor stub
}
public MultitouchView(Context context, AttributeSet attrs, int defStyle) {
super(context, attrs, defStyle);
}
public MultitouchView(Context context, AttributeSet attrs) {
super(context, attrs);
}
public boolean onInterceptTouchEvent(MotionEvent event){
Toast toast = Toast.makeText(getContext(), "TEST", 1000);
toast.show();
return false;
}
@Override
public boolean onTouchEvent(MotionEvent event) {
super.onTouchEvent(event);
int action = event.getAction() & MotionEvent.ACTION_MASK;
switch (action) {
case MotionEvent.ACTION_DOWN: {
Log.d("MultitouchExample","Action Down");
mTouchStart = System.currentTimeMillis();
SoundManager.playSound(1,1);
break;
}
}
return true;
}
}
谢谢