2017-05-02 21 views
5

Tôi đã xem nhiều bài đăng nhưng không thể tìm thấy câu trả lời. Tôi muốn xoay hình ảnh gốc bằng một hình ảnh nhỏ khác nằm ở phía dưới của hình ảnh gốc.android ImageView xoay một ngón tay

trong khi xoay vòng hoạt động nhưng lần đầu tiên tôi nhấn nó, nó nhảy đến 45 độ vì math.tan(), tôi nghĩ rằng tôi có vấn đề về tính toán.

 rotateImage.setOnTouchListener(new OnTouchListener() { 

    @Override 

public boolean onTouch(View view, MotionEvent event) { 

final int action = MotionEventCompat.getActionMasked(event); 

     switch (action) { 
     case MotionEvent.ACTION_UP: 
     break; 
     case MotionEvent.ACTION_DOWN: 

     rotateX = event.getRawX() - rotateImage.getWidth()/2; 
     rotateY = event.getRawY() - rotateImage.getHeight()/2; 


     break; 

     case MotionEvent.ACTION_MOVE: 

     float angle = (float) Math.toDegrees(Math.atan2(event.getRawY() - rotateY, event.getRawX() - rotateX)); 

     if (angle < 0){ 
     angle += 360; 
     } 

     mBinding.getRoot().setRotation(angle); 


     } 

     return true; 
     } 
     }); 

vui lòng tham khảo.

+1

Tôi nghĩ thư viện này có thể giúp bạn rất nhiều https://github.com/kencheung4/android-StickerView Vui lòng xem. –

+0

tham khảo tuyệt vời !!! cảm ơn! – joseRo

+0

bạn được chào đón. nếu nó giải quyết được vấn đề bạn hãy chấp nhận câu trả lời. –

Trả lời

3

Tôi nghĩ thư viện này có thể giúp bạn. https://github.com/kencheung4/android-StickerView

+0

Bạn sẽ nhận được chúng tự động vì câu trả lời của bạn được chấp nhận. – azizbekian

+0

Tôi nghĩ mình không nhận được chúng. –

+0

Đây là thư viện thực hiện chính xác những gì bạn cần. https://stackoverflow.com/questions/6578320/how-to-apply-zoom-drag-and-rotation-to-an-image-in-android/47861501#47861501 – user2288580

Các vấn đề liên quan