Перемещение изображения в круговом движении на основе сенсорных событий в Android

Я пытаюсь переместить ImageView (не вращать). Движение должно быть на краю круга. Этот круг также является изображением.

основываясь на событии onTouch, ACTION_MOVE, я пытаюсь его переместить.

Нет, дилемма в том, что использование может не двигать пальцем совершенно круглым способом, но я хотел бы убедиться, что изображение все еще движется по краю этого круга.

В настоящее время я использую следующее внутри ACTION_MOVE:

mCurrTempIndicator.setTranslationX(event.getX());
mCurrTempIndicator.setTranslationY(event.getY());

Но это не будет двигаться в идеальном кругу.

Может кто-нибудь, пожалуйста, помогите.

ОБНОВЛЕНИЕ: код

@Override
        public boolean onTouch(View v, MotionEvent event) {

            switch (event.getAction()) {

                case MotionEvent.ACTION_DOWN:


                        mInitialX = event.getX();
                        mInitialY = event.getY();

                    break;

                case MotionEvent.ACTION_MOVE:

                    mEndX = event.getX();
                    mEndY = event.getY();

                    float deltaX = mEndX - mInitialX;
                    float deltaY = mEndY - mInitialY;
                    double angleInDegrees = Math.atan(deltaY / deltaX) * 180 / Math.PI;

                    mInitialX = mEndX;
                    mInitialY = mEndY;

                    mCurrTempIndicator.setRotation((float)angleInDegrees);
                    mCurrTempIndicator.setTranslationX((float)(310*(Math.cos(angleInDegrees))));
                    mCurrTempIndicator.setTranslationY((float)(310*(Math.sin(angleInDegrees))));




                    break;

                case MotionEvent.ACTION_UP:
                    allowRotating = true;
                    break;
            }



            return true;
        }

Ответы на вопрос(1)

Ваш ответ на вопрос