0
以及我有很多圖像作爲我的佈局中的按鈕,我希望使用setOnTouchListener和Switch Case來減少編碼。 但我看到了。如果我使用帶圖像ID的開關盒圖像需要雙擊或多次點擊才能觸發事件。SetOnTouchListener需要雙擊,如果我在圖像Id中使用Switch Switch
這是工作,但很長的編碼: 它使每個圖像很長的編碼。
ImageView imageView1 = (ImageView) findViewById(R.id.image1);
// set the ontouch listener
imageView1.setOnTouchListener(new OnTouchListener() {
//events
}
這就是我想要的,但不能正常工作:
所以,我決定用開關箱stament。
public void btnClicker(View v) {
switch (v.getId()) {
case R.id.image1:
imagetouch(image1);
break;
這是一個XML
<ImageView
android:id="@+id/image1"
android:layout_width="match_parent"
android:layout_height="wrap_content"
android:clickable="true"
android:onClick="btnClicker"
android:src="@drawable/kupa2" />
這是我imagetouch方法:
public void imagetouch(ImageView image) {
image.setOnTouchListener(new OnTouchListener() {
@Override
public boolean onTouch(View v, MotionEvent event) {
switch (event.getAction()) {
case MotionEvent.ACTION_DOWN: {
ImageView view = (ImageView) v;
// overlay is black with transparency of 0x77 (119)
view.getDrawable().setColorFilter(0x77000000,
PorterDuff.Mode.SRC_ATOP);
view.invalidate();
break;
}
case MotionEvent.ACTION_UP: {
//my events
}
case MotionEvent.ACTION_CANCEL: {
ImageView view = (ImageView) v;
// clear the overlay
view.getDrawable().clearColorFilter();
view.invalidate();
break;
}
}
return true;
}
});
}
您正在使用2觸摸監聽針對1圖片ID 1觸發第二個和第二個執行你的功能 –