Gire la vista de disposición de androide sobre su centro usando el oyente táctil

Aquí es cómo mi configuración para girar se ve.

Introduzca aquí la descripción de la imagen

Estoy escuchando la acción hacia abajo y me muevo en el icono de rotación, tratando de calcular el ángulo de rotación y aplicar ese ángulo de rotación a la disposición entera que encapsula el edittext. La rotación aplicada tiene que ser alrededor del centro de encapsular el diseño relativo.

Aquí es cómo estoy tratando de lograr esto, en el TouchListener para icono de rotación.

if(v == ivRotateSticker){ //TODO grab xc and yc using (top and bottom)/2 and (left and right)/2 to grab center of sticker after each rotation final float x = event.getX(); final float y = event.getY(); rlTextStickerLayout.getGlobalVisibleRect(myViewRect); xc = myViewRect.width()/2; yc = myViewRect.height()/2; dx = scaleReceiver.getWidth() - myViewRect.width(); dy = scaleReceiver.getHeight() - myViewRect.height(); leftBound = scaleReceiver.getX(); topBound = scaleReceiver.getY(); switch (event.getAction()){ case MotionEvent.ACTION_DOWN: mViewAngle = rlTextStickerLayout.getRotation(); mPrevAngle = Math.toDegrees(Math.atan2(x - xc, yc - y)); break; case MotionEvent.ACTION_MOVE: Log.d("EventRegistered", " " + event.getRawX() + "--" + dx + " -- " + dy); mCurrAngle = Math.toDegrees(Math.atan2(x - xc, yc - y)); if (x >= leftBound && y >= topBound && x <= dx && y <= dy) { float rot = (float) (mViewAngle + mCurrAngle - mPrevAngle); rlTextStickerLayout.setRotation((float) (mViewAngle + mCurrAngle - mPrevAngle)); Log.d("stickerRotation"," "+rot); } break; } return true; } 

Pero la rotación resultante es glitchy y no como deseado suave. Además, si muevo la etiqueta a un lugar diferente, ¿cómo puedo actualizar el nuevo centro para la rotación, ya que la rotación después de mover la etiqueta cambia drásticamente el centro de rotación. ¿Cómo puedo lograr una rotación mucho más suave?

FlipAndroid es un fan de Google para Android, Todo sobre Android Phones, Android Wear, Android Dev y Aplicaciones para Android Aplicaciones.