2014-04-28 18 views
18

ViewPropertyAnimators (http://developer.android.com/reference/android/view/ViewPropertyAnimator.html) có hai loại phương pháp để di chuyển xem xung quanh:Sự khác nhau giữa các phương thức translateYBy() vs yBy() của ViewPropertyAnimator là gì?

translateX() vs x(), translateY() vs y(), translateXBy() vs xBy() và cuối cùng translateYBy() vs yBy().

Ai đó có thể cho tôi biết sự khác biệt giữa các phương pháp này không?

Trả lời

32

Câu trả lời ở trên không chính xác.

Tài liệu nêu rõ rằng các thuộc tính XY là các vị trí tuyệt đối, trong khi translationXtranslationY được tham chiếu tương ứng với LEFT và TOP.

Vì vậy, sự khác biệt giữa animate().x()animate().translationX() là một sinh động đến một giá trị tuyệt đối, trong khi làm sinh động khác đến một giá trị tuyệt đối vẫn còn nhưng xác định bởi quan điểm LEFTTOP giá trị.

Ngược lại, animate().xBy()animate().translationXBy() tăng (đại số) giá trị thuộc tính theo số tiền được chỉ định.

Đó là nguồn gốc của "một số toán học" được trích dẫn ở trên.

+1

Tôi không nhận được. bạn có thể vui lòng cung cấp thêm thông tin không. hoặc liên kết với một số tài nguyên. để tôi có thể hiểu khái niệm –

+0

https://developer.android.com/reference/android/view/View.html –

1

x là vị trí trực quan hiện tại của chế độ xem trong trục x. Vì vậy, ví dụ: khi bạn tạo hiệu ứng động x bằng cách gọi view.animate().x(10), chế độ xem sẽ được làm động để nó chuyển sang x=10. Chúng ta hãy giả định rằng khung nhìn ở vị trí (100, 150) khi bạn bắt đầu hoạt ảnh. Đến cuối hoạt ảnh, khung nhìn sẽ ở trong (10, 150).

Bây giờ, hãy tương phản điều này với translationX. Nếu bạn tạo hiệu ứng cho thuộc tính này bằng cách gọi view.animate().translationX(10), bạn sẽ di chuyển chế độ xem theo nhiều pixel đó trong trục x. Giả sử cùng một ví dụ, trong đó chế độ xem ở vị trí (100, 150) khi bạn bắt đầu hoạt ảnh. Đến cuối hoạt hình, khung cảnh sẽ ở trong (110, 150).

Hy vọng rằng làm rõ sự khác biệt giữa x()translationX(). Sự khác biệt là như nhau đối với y()translationY(), nhưng ở trục y.

Theo quan điểm của tôi, xBy() đạt được hiệu quả tương tự như translationX() nhưng bằng cách sử dụng chính tài sản x cộng với một số toán học. yBy()translationY() tương đương với trục y.

Hy vọng làm rõ ...

+0

Cảm ơn, tôi luôn tự hỏi tại sao họ cần phương thức translateXBy. Nó cảm thấy chính xác giống như XBy. –

+11

Đây là câu trả lời sai. Xem câu trả lời của Nicolò Parolini – tgkprog

+0

Đồng ý, đây không phải là câu trả lời đúng. Xem tài liệu. –

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