Định cấu hình hiệu ứng chuyển cảnh

Sử dụng hiệu ứng chuyển cảnh để xác định các thay đổi giữa các bảng điều khiển. Bạn có thể xác định hiệu ứng chuyển cảnh để mô tả cách thức và thời điểm thực hiện thay đổi giữa hai biến thể của một bảng điều khiển. Bạn có thể xác định danh sách hiệu ứng chuyển cảnh cho từng bảng điều khiển.

Sử dụng thẻ XML <Transitions> làm vùng chứa cho một hoặc nhiều định nghĩa <Transition> trong cấu hình của một <TaskPanel> hoặc <DecorPanel>. Bạn có thể sử dụng thẻ này để xác định một nhóm quy tắc ảnh động nhằm điều chỉnh thời điểm và cách thức một bảng điều khiển nên thay đổi trạng thái hình ảnh từ một biến thể riêng biệt sang một biến thể khác.

Thuộc tính XML

Thẻ <Transitions> có thể xác định các giá trị mặc định cho các phần tử con <Transition>:

Thuộc tính Trạng thái Mô tả
<defaultDuration> Không bắt buộc

Chỉ định thời lượng mặc định tính bằng mili giây để áp dụng cho tất cả phần tử con

<Transition> các phần tử không đặt thuộc tính thời lượng một cách rõ ràng.

Hằng số DEFAULT_DURATION của hệ thống (thường là 300 mili giây) sẽ được sử dụng khi bạn không chỉ định thuộc tính này.

defaultInterpolator Không bắt buộc

Tham chiếu đến mã tài nguyên XML của Bộ nội suy Android. Ví dụ: @android:anim/accelerate_decelerate_interpolator. Bộ nội suy được dùng làm giá trị mặc định cho tất cả phần tử con <Transition> không đặt thuộc tính bộ nội suy một cách rõ ràng.

Nếu bạn không chỉ định bộ nội suy mặc định, thì hệ thống thường mặc định là AccelerateDecelerateInterpolator.

Phần tử con XML

Phần tử con của <Transitions><Transition>, phần tử cốt lõi dùng để xác định một đường dẫn ảnh động cụ thể giữa các biến thể PanelState. Bạn có thể lồng nhiều <Transition> phần tử trong một <Transitions> khối.

Mã mẫu

Trong mẫu này, fromVariant là không bắt buộc. Khi không được xác định, biến thể hiện tại sẽ được sử dụng. Nếu fromVariant được xác định, thì hiệu ứng chuyển cảnh chỉ được sử dụng khi tất cả các tham số đều khớp. Các tham số được chỉ định trong Sự kiện và fromVariant.

<Transitions defaultDuration="400"
         defaultInterpolator="@android:anim/linear_interpolator">
  <Transition fromVariant="closed_app"
              toVariant="opened_app">
    <Event id="app_opened" panel="application_panel" />
  </Transition>
</Transitions>

Hiệu ứng chuyển cảnh

Hiệu ứng chuyển cảnh mô tả cách tạo ảnh động cho sự thay đổi về trạng thái hình ảnh giữa hai biến thể của một bảng điều khiển. Hiệu ứng chuyển cảnh vạch ra đường dẫn từ một biến thể đến một biến thể. Để thực hiện việc này, hiệu ứng chuyển cảnh sẽ chỉ định các thông tin chi tiết như ảnh động cần áp dụng và sự kiện cần thiết để kích hoạt ảnh động.

Đối với một bảng điều khiển, hiệu ứng chuyển cảnh có thể xác định ảnh động cho các thuộc tính như ranh giới, chế độ hiển thị và alpha. Nếu bạn không chỉ định trình tạo ảnh động tuỳ chỉnh, thì trình tạo ảnh động mặc định sẽ được sử dụng.

Thuộc tính XML

Thẻ <Transition> sử dụng một số thuộc tính để xác định đặc điểm của ảnh động và các điều kiện mà ảnh động sẽ xảy ra.

Phần tử con XML

<Event> xác định các thuộc tính của sự kiện có thể kích hoạt hiệu ứng chuyển cảnh.

Giá trị nhận dạng riêng biệt của bảng điều khiển được liên kết với sự kiện này.
Thuộc tính Trạng thái Mô tả
<id> Bắt buộc Giá trị nhận dạng riêng biệt của sự kiện để kích hoạt trình kích hoạt.
<panelId> Không bắt buộc Giá trị nhận dạng riêng biệt của bảng điều khiển được liên kết với sự kiện.
componentName Không bắt buộc Tên thành phần được liên kết với sự kiện này.
packageName Không bắt buộc Tên gói được liên kết với sự kiện.

Mã mẫu

<Transitions defaultDuration="400"
        defaultInterpolator="@android:anim/accelerate_interpolator">
  <!-- A transition from 'closed_app' to 'opened_app' variant, triggered by 'open_app_event' -->
  <Transition fromVariant="closed_app"
              toVariant="opened_app">
    <Event id="app_opened" panel="application_panel" />
  <Transition>

  <!-- A transition from 'opened_app' to 'closed_app' variant, using a custom animator -->
  <Transition fromVariant="opened_app"
              toVariant="closed_app"
              animator="@animator/close_app">
    <Event id="_System_PanelEmptyEvent"
           panelId="application_panel" />
  <Transition>
</Transitions>