<KeyPosition>

Chỉ định vị trí của một thành phần hiển thị tại một thời điểm cụ thể trong trình tự chuyển động. Thuộc tính này dùng để điều chỉnh đường dẫn mặc định của chuyển động.

Ví dụ: nếu một đối tượng bắt đầu ở góc trên bên trái và kết thúc ở góc dưới bên phải, thì trình tự chuyển động mặc định sẽ di chuyển đối tượng xuống dưới màn hình theo đường chéo. Bằng cách thêm một hoặc nhiều phần tử <KeyPosition>, bạn có thể làm biến dạng đường dẫn.

Cú pháp

<KeyPosition
    motion:motionTarget="@id/targetPath"
    motion:framePosition="percentage"
    motion:keyPositionType="type"
    motion:percentX="xOffset"
  motion:percentY="yOffset"
/>

Thuộc tính

motion:motionTarget
Chế độ xem có chuyển động do <KeyPosition> này điều khiển.
motion:framePosition
Số nguyên từ 1 đến 99 chỉ định thời điểm trong trình tự chuyển động, khung hiển thị đạt đến điểm do <KeyPosition> này chỉ định. Ví dụ: nếu framePosition là 25, khung hiển thị sẽ đến điểm được chỉ định trong 1/4 quãng đường theo chuyển động.
motion:percentX, motion:percentY
Chỉ định vị trí mà khung hiển thị đạt đến. Thuộc tính keyPositionType chỉ định cách diễn giải các giá trị này.
motion:keyPositionType
Chỉ định cách diễn giải các giá trị percentXpercentY. Các chế độ cài đặt có thể có như sau:
  • parentRelative
  • percentXpercentY được chỉ định tương ứng với khung hiển thị mẹ. X là trục ngang, trong khoảng từ 0 đối với cạnh trái đến 1 đối với cạnh phải. Y là trục tung, với 0 là trên cùng và 1 là dưới cùng.

    Ví dụ: nếu bạn muốn khung hiển thị mục tiêu hiển thị một điểm ở giữa phía bên phải của khung hiển thị mẹ, hãy đặt percentX thành 1 và percentY thành 0, 5.

  • deltaRelative
  • percentXpercentY được chỉ định tương ứng với khoảng cách mà khung hiển thị di chuyển trong toàn bộ chuỗi chuyển động. X là trục hoành và Y là trục tung. Trong cả hai trường hợp, 0 là vị trí bắt đầu của thành phần hiển thị trong trục đó và 1 là vị trí cuối cùng.

    Giả sử thành phần hiển thị mục tiêu di chuyển 100 dp lên và 100 dp sang phải, nhưng bạn muốn chế độ xem di chuyển xuống 40 dp trong quý đầu tiên của chuyển động, sau đó quay ngược lên. Đặt framePosition thành 25, keyPositionType thành deltaRelativepercentY thành -0, 4.

  • pathRelative
  • Trục X là hướng mà thành phần hiển thị mục tiêu di chuyển trong suốt quá trình của đường dẫn, với 0 là vị trí bắt đầu và 1 là vị trí cuối cùng. Trục Y vuông góc với trục X, có giá trị dương ở bên trái đường dẫn và giá trị âm ở bên phải. Vì vậy, vị trí ban đầu của thành phần hiển thị là (0,0) và vị trí cuối cùng là (1,0). Việc đặt percentY khác 0 sẽ khiến khung hiển thị xoay vòng theo một hướng hoặc hướng khác.

    Giả sử bạn muốn khung hiển thị chiếm một nửa chuỗi chuyển động để bao phủ 10% tổng khoảng cách, sau đó tăng tốc độ để bao phủ 90% còn lại. Đặt framePosition thành 50, keyPositionType thành pathRelativepercentX thành 0, 1. percentY vẫn là 0.

Có trong