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

Sử dụng hiệu ứng chuyển đổi để xác định các thay đổi giữa các bảng. Bạn có thể xác định một hiệu ứng chuyển đổi để 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 các hiệu ứng chuyển cảnh cho từng bảng.

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ể dùng thẻ này để xác định một bộ quy tắc về ảnh động nhằm điều chỉnh thời điểm và cách một bảng điều khiển thay đổi trạng thái trực quan 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ử <Transition> con sau đây:

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 sẽ được áp dụng cho tất cả con

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

Hằng số DEFAULT_DURATION của hệ thống (thường là 300 mili giây) sẽ được 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ã nhận dạng 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ả các phần tử <Transition> con không đặt rõ ràng thuộc tính bộ nội suy.

Nếu không có bộ nội suy mặc định nào được chỉ định, 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 phần tử <Transition> trong một khối <Transitions>.

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 dùng. Nếu bạn xác định fromVariant, thì quá trình chuyển đổi chỉ được dùng khi tất cả các tham số đều khớp. Các thông 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 đổi mô tả cách tạo ảnh động cho một thay đổi về trạng thái trực quan giữa hai biến thể của một bảng điều khiển. Chuyển đổi vạch ra đường dẫn từ một biến thể sang một biến thể khác. Để làm như vậy, hiệu ứng chuyển đổi 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 đổi 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 hiệu ứng động tuỳ chỉnh, thì trình tạo hiệu ứng động mặc định sẽ được dùng.

Thuộc tính XML

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

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 quá trình chuyển đổi.

Giá trị nhận dạng duy nhấ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 duy nhất của sự kiện để kích hoạt điều kiện kích hoạt.
<panelId> Không bắt buộc Giá trị nhận dạng duy nhấ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 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>