我需要根據用戶的觸摸手勢來移動,旋轉和調整edittext的大小。在android中移動,旋轉和調整edittext的內容
這是我在做什麼。 1.偵聽ACTION_DOWN事件以檢測單指觸摸,然後使用它進行移動。
偵聽ACTION_POINTER_DOWN,並獲取索引計數以檢測兩個手指觸摸,然後使用ACTION_MOVE進行旋轉。
我需要進行調整大小的工作,只有通過觸摸來調整大小的寬度纔會減少。我對着 運動
問題是工作完全正常。但是當我使用ACTION_POINTER_DOWN應用旋轉時,旋轉會出現各種各樣的干擾。有關如何使視圖移動和旋轉一起工作的任何建議?
這裏是我已經申請
tvMain.setOnTouchListener(new View.OnTouchListener() {
@Override
public boolean onTouch(View v, MotionEvent event) {
switch (event.getAction() & MotionEvent.ACTION_MASK) {
case MotionEvent.ACTION_DOWN:
moving = true;
break;
case MotionEvent.ACTION_POINTER_DOWN:
Log.d("ActionPointerIndex", "" + event.getActionIndex());
int index = event.getActionIndex();
moving = false;
//FOR ROTATION DETAILS
xc = tvMain.getWidth()/2;
yc = tvMain.getHeight()/2;
x_ = event.getX();
y_ = event.getY();
Log.d("currentAnglePD", ": " + x_ + "," + y_);
if (index == 1) {
rotate = true;
mCurrAngle = Math.toDegrees(Math.atan2(x_ - xc, yc - y_));
moving = false;
}
break;
case MotionEvent.ACTION_MOVE:
if (moving) {
leftBound = rootView.getX();
topBound = rootView.getY();
rightBound = rootView.getX() + 1280;
bottomBound = rootView.getY() + 618;
x = event.getRawX() - tvMain.getWidth()/2;
y = event.getRawY() - tvMain.getHeight();
dx = Float.valueOf(rootView.getWidth() - tvMain.getWidth());
dy = Float.valueOf(rootView.getHeight() - tvMain.getHeight());
bottomBound_ = tvMain.getY() + tvMain.getHeight();
rightBound_ = tvMain.getX() + tvMain.getWidth();
if (x >= leftBound && y >= topBound && x <= dx && y <= dy) {
tvMain.setX(x);
tvMain.setY(y);
}
}
if (rotate) {
Log.d("currentAngleMove", ": " + x_ + "," + y_);
mPrevAngle = mCurrAngle;
mCurrAngle = Math.toDegrees(Math.atan2(x_ - event.getX(), yc - event.getY()));
animate(mPrevAngle, mCurrAngle, 0);
System.out.println(mCurrAngle);
}
break;
case MotionEvent.ACTION_POINTER_UP:
rotate = false;
break;
case MotionEvent.ACTION_UP:
rotate = false;
moving = false;
//tvMain.clearAnimation();
break;
}
return true;
}
});
運動正在罰款touchListener的代碼,但是當我移動視圖,旋轉進入瘋狂,它不沿其中心旋轉。一旦我停止旋轉,視圖停止監聽更多的觸摸手勢。
請提供幫助代碼。 – Kriti
@Kriti請檢查編輯 – SagePawan