0
代碼如下。我擴展了TextView
並超越了它的onTouchEvent
方法。我想將整個TextView
(不是文本本身)左右移動。 以下代碼種類的作品,但它只能讓我移動大約0.5釐米的TextView
,並且比我得到ACTION_CANCEL
事件。 TextView
寬204dp。 任何人都可以給我一些線索爲什麼發生這種情況?謝謝。移動TextView時得到了ACTION_CANCEL
package com.zhangfuwen.tenkhours;
import android.content.Context;
import android.util.Log;
import android.view.MotionEvent;
import android.widget.Button;
import android.widget.TextView;
import android.util.AttributeSet;
/**
* Created by dean on 2015/6/20.
*/
public class MyTextView extends TextView {
private int mHistoricalX;
public MyTextView(Context context, AttributeSet attrs) {
super(context, attrs);
}
@Override
public boolean onTouchEvent(MotionEvent event) {
float x = event.getX();
switch (event.getAction()) {
case MotionEvent.ACTION_DOWN:
mHistoricalX = (int)x;
Log.e("haha", "down.");
return true;
//break;
//return super.onTouchEvent(event);
case MotionEvent.ACTION_MOVE:
Log.e("haha", "move.");
float diff = x - mHistoricalX;
this.setX(this.getX() + diff);
invalidate();
return true;
//super.onTouchEvent(event);
//return true;
case MotionEvent.ACTION_UP:
//TODO:啓動定時器,進行倒計時
//
Log.e("haha", "up.");
diff = x - mHistoricalX;
this.setX(this.getX() + diff);
return true;
//break;
case MotionEvent.ACTION_OUTSIDE:
Log.e("haha","outside");
return true;
case MotionEvent.ACTION_CANCEL:
Log.e("haha","cancel");
return false;
case MotionEvent.ACTION_HOVER_MOVE:
Log.e("haha","hover move");
return true;
//}
//return super.onTouchEvent(event);
default:
Log.e("haha","action is " + Integer.toString(event.getAction()));
return true;
//break;
}
//return super.onTouchEvent(event);
}
}