Tài nguyên ảnh động
Sử dụng bộ sưu tập để sắp xếp ngăn nắp các trang
Lưu và phân loại nội dung dựa trên lựa chọn ưu tiên của bạn.
Tài nguyên ảnh động có thể xác định một trong 2 loại ảnh động:
- Ảnh động thuộc tính
- Tạo ảnh động bằng cách sửa đổi giá trị thuộc tính của một đối tượng trong một khoảng thời gian bằng
Animator
.
- Ảnh động dạng khung hiển thị
-
Bạn có thể tạo 2 loại ảnh động với khung của ảnh động khung hiển thị:
Ảnh động thuộc tính
Một ảnh động được xác định trong tệp XML có chức năng sửa đổi các thuộc tính của đối tượng mục tiêu, chẳng hạn như màu nền hoặc giá trị alpha trong một khoảng thời gian nhất định.
- vị trí tệp:
res/animator/filename.xml
Tên tệp được dùng làm mã nhận dạng tài nguyên.
- loại dữ liệu tài nguyên được biên dịch:
- Con trỏ tài nguyên đến
ValueAnimator
, ObjectAnimator
hoặc AnimatorSet
- mã tham chiếu tài nguyên:
-
Trong mã dựa trên Java hoặc Kotlin:
R.animator.filename
Trong XML: @[package:]animator/filename
- cú pháp:
-
<set
android:ordering=["together" | "sequentially"]>
<objectAnimator
android:propertyName="string"
android:duration="int"
android:valueFrom="float | int | color"
android:valueTo="float | int | color"
android:startOffset="int"
android:repeatCount="int"
android:repeatMode=["restart" | "reverse"]
android:valueType=["intType" | "floatType"]/>
<animator
android:duration="int"
android:valueFrom="float | int | color"
android:valueTo="float | int | color"
android:startOffset="int"
android:repeatCount="int"
android:repeatMode=["restart" | "reverse"]
android:valueType=["intType" | "floatType"]/>
<set>
...
Tệp phải có một phần tử gốc:
,
hoặc
. Bạn có thể nhóm các phần tử ảnh động lại với nhau trong phần tử
, bao gồm cả các phần tử
khác.
- phần tử:
-
- Một vùng chứa lưu giữ các phần tử ảnh động khác (
,
hoặc các phần tử
khác). Đại diện cho AnimatorSet
.
Bạn có thể chỉ định các thẻ
lồng nhau để nhóm thêm các ảnh động. Mỗi
có thể xác định thuộc tính ordering
của riêng nó.
Thuộc tính:
-
android:ordering
-
Từ khoá. Chỉ định thứ tự phát các ảnh động trong tập hợp này.
Giá trị | Nội dung mô tả |
sequentially | Phát các ảnh động trong tập hợp này theo tuần tự. |
together (mặc định) | Phát các ảnh động trong tập hợp này cùng lúc. |
- Tạo ảnh động cho một thuộc tính cụ thể của đối tượng trong một khoảng thời gian cụ thể. Đại diện cho
ObjectAnimator
.
Thuộc tính:
-
android:propertyName
-
Chuỗi. Bắt buộc. Thuộc tính của đối tượng để tạo ảnh động được tham chiếu theo tên của đối tượng. Chẳng hạn như bạn có thể chỉ định
"alpha"
hoặc "backgroundColor"
cho một đối tượng View
.
Tuy nhiên, phần tử objectAnimator
không hiển thị thuộc tính target
nên bạn không thể đặt đối tượng để tạo ảnh động trong phần khai báo XML. Bạn phải tăng cường tài nguyên XML ảnh động bằng cách gọi loadAnimator()
và gọi setTarget()
để đặt đối tượng mục tiêu chứa thuộc tính này.
-
android:valueTo
-
số thực có độ chính xác đơn, số nguyên hoặc màu. Bắt buộc. Giá trị mà thuộc tính ảnh động kết thúc. Màu được biểu thị dưới dạng số thập lục phân gồm 6 chữ số, chẳng hạn như #333333.
-
android:valueFrom
-
số thực có độ chính xác đơn, số nguyên hoặc màu. Giá trị bắt đầu của thuộc tính ảnh động. Nếu không được chỉ định, ảnh động sẽ bắt đầu ở giá trị mà phương thức
get
của thuộc tính thu được. Màu được biểu thị dưới dạng số thập lục phân gồm 6 chữ số, chẳng hạn như #333333.
-
android:duration
-
số nguyên. Thời gian tính bằng mili giây của ảnh động. Thời gian mặc định là 300 mili giây.
-
android:startOffset
-
số nguyên. Thời lượng mili giây mà ảnh động trì hoãn sau khi
start()
được gọi.
-
android:repeatCount
-
số nguyên. Số lần lặp lại một ảnh động. Đặt thành
"-1"
để lặp lại vô hạn hoặc thành số nguyên dương. Chẳng hạn như giá trị của "1"
có nghĩa là ảnh động sẽ lặp lại một lần sau lần chạy ảnh động đầu tiên, vì vậy ảnh động sẽ phát tổng cộng hai lần. Giá trị mặc định là "0"
, nghĩa là không lặp lại.
-
android:repeatMode
-
số nguyên. Cách chạy của ảnh động khi đến cuối ảnh động.
android:repeatCount
phải được đặt thành số nguyên dương hoặc "-1"
để thuộc tính này có hiệu lực. Được đặt thành "reverse"
để có hướng đảo ngược ảnh động qua mỗi lần lặp hoặc "restart"
để có vòng lặp ảnh động từ đầu mỗi lần.
-
android:valueType
-
Từ khoá. Không chỉ định thuộc tính này nếu giá trị là một màu sắc. Khung ảnh động sẽ tự động xử lý các giá trị màu sắc.
Giá trị | Nội dung mô tả |
intType | Chỉ định các giá trị được tạo ảnh động là số nguyên |
floatType (mặc định) | Chỉ định các giá trị được tạo ảnh động là các số thực có độ chính xác đơn. |
- Thực hiện ảnh động trong một khoảng thời gian nhất định.
Đại diện cho
ValueAnimator
.
Thuộc tính:
-
android:valueTo
-
số thực có độ chính xác đơn, số nguyên hoặc màu. Bắt buộc. Giá trị nơi ảnh động kết thúc. Màu được biểu thị dưới dạng số thập lục phân gồm 6 chữ số, chẳng hạn như #333333.
-
android:valueFrom
-
số thực có độ chính xác đơn, số nguyên hoặc màu. Bắt buộc. Giá trị nơi ảnh động bắt đầu. Màu được biểu thị dưới dạng số thập lục phân gồm 6 chữ số, chẳng hạn như #333333.
-
android:duration
-
số nguyên. Thời gian tính bằng mili giây của ảnh động. Thời gian mặc định là 300 mili giây.
-
android:startOffset
-
số nguyên. Thời lượng mili giây mà ảnh động trì hoãn sau khi
start()
được gọi.
-
android:repeatCount
-
số nguyên. Số lần lặp lại một ảnh động. Đặt thành
"-1"
để lặp lại vô hạn hoặc thành số nguyên dương. Chẳng hạn như giá trị của "1"
có nghĩa là ảnh động sẽ lặp lại một lần sau lần chạy ảnh động đầu tiên, vì vậy ảnh động sẽ phát tổng cộng hai lần. Giá trị mặc định là "0"
, nghĩa là không lặp lại.
-
android:repeatMode
-
số nguyên. Cách chạy của ảnh động khi đến cuối ảnh động.
android:repeatCount
phải được đặt thành số nguyên dương hoặc "-1"
để thuộc tính này có hiệu lực. Được đặt thành "reverse"
để có hướng đảo ngược ảnh động qua mỗi lần lặp hoặc "restart"
để có vòng lặp ảnh động từ đầu mỗi lần.
-
android:valueType
-
Từ khoá. Không chỉ định thuộc tính này nếu giá trị là một màu sắc. Khung ảnh động sẽ tự động xử lý các giá trị màu sắc.
Giá trị | Nội dung mô tả |
intType | Chỉ định các giá trị được tạo ảnh động là số nguyên |
floatType (mặc định) | Chỉ định các giá trị được tạo ảnh động là các số thực có độ chính xác đơn. |
- ví dụ:
-
Tệp XML được lưu vào res/animator/property_animator.xml
:
Để chạy ảnh động này, hãy tăng cường tài nguyên XML trong mã của bạn thành một đối tượng AnimatorSet
, sau đó đặt đối tượng mục tiêu cho tất cả ảnh động trước khi bắt đầu tập hợp ảnh động. Việc gọi setTarget()
sẽ đặt một đối tượng mục tiêu duy nhất cho tất cả thành phần con của AnimatorSet
để đảm bảo thuận tiện. Mã sau đây minh hoạ cách thực hiện việc này:
Kotlin
val set: AnimatorSet = AnimatorInflater.loadAnimator(myContext, R.animator.property_animator)
.apply {
setTarget(myObject)
start()
}
Java
AnimatorSet set = (AnimatorSet) AnimatorInflater.loadAnimator(myContext,
R.animator.property_animator);
set.setTarget(myObject);
set.start();
- xem thêm:
-
Ảnh động dạng khung hiển thị
Khung của ảnh động dạng khung hiển thị hỗ trợ cả ảnh động lấy giá trị giữa lẫn ảnh động theo từng khung, cả hai đều được khai báo trong tệp XML. Các phần sau đây mô tả cách sử dụng cả hai phương pháp.
Ảnh động lấy giá trị giữa
Là một ảnh động được xác định trong XML thực hiện hiệu ứng chuyển đổi trên một nội dung đồ hoạ như xoay, làm mờ, di chuyển và kéo giãn.
- vị trí tệp:
res/anim/filename.xml
Tên tệp được dùng làm mã nhận dạng tài nguyên.
- loại dữ liệu tài nguyên được biên dịch:
- Con trỏ tài nguyên đến
Animation
- mã tham chiếu tài nguyên:
-
Trong Java:
R.anim.filename
Trong XML: @[package:]anim/filename
- cú pháp:
-
<set xmlns:android="http://schemas.android.com/apk/res/android"
android:interpolator="@[package:]anim/interpolator_resource"
android:shareInterpolator=["true" | "false"] >
<alpha
android:fromAlpha="float"
android:toAlpha="float" />
<scale
android:fromXScale="float"
android:toXScale="float"
android:fromYScale="float"
android:toYScale="float"
android:pivotX="float"
android:pivotY="float" />
<translate
android:fromXDelta="float"
android:toXDelta="float"
android:fromYDelta="float"
android:toYDelta="float" />
<rotate
android:fromDegrees="float"
android:toDegrees="float"
android:pivotX="float"
android:pivotY="float" />
<set>
...
Tệp phải có một thành phần gốc: thành phần
,
,
,
hoặc
lưu giữ một nhóm (hoặc nhóm) các thành phần ảnh động khác (thậm chí là các thành phần
lồng nhau).
- phần tử:
-
- Một vùng chứa lưu giữ các phần tử ảnh động khác
(
,
,
,
) hoặc các phần tử
khác. Đại diện cho AnimationSet
.
Thuộc tính:
android:interpolator
- Tài nguyên bộ nội suy.
Interpolator
để áp dụng cho ảnh động.
Giá trị phải là mã tham chiếu đến một tài nguyên chỉ định bộ nội suy chứ không phải là tên lớp của bộ nội suy. Tài nguyên của bộ nội suy mặc định có sẵn trong nền tảng hoặc bạn có thể tạo tài nguyên bộ nội suy của riêng mình.
Xem nội dung thảo luận sau để biết thêm thông tin về bộ nội suy.
android:shareInterpolator
- Boolean.
"true"
nếu bạn muốn chia sẻ cùng một bộ nội suy giữa tất cả các phần tử con.
- Ảnh động với hiệu ứng rõ dần hoặc mờ dần. Đại diện cho
AlphaAnimation
.
Thuộc tính:
android:fromAlpha
- Số thực có độ chính xác đơn. Bắt đầu độ lệch mờ, trong đó 0.0 là độ trong suốt và 1.0 là độ mờ.
android:toAlpha
- Số thực có độ chính xác đơn. Kết thúc độ lệch mờ, trong đó 0.0 là trong suốt và 1.0 là độ mờ.
Để biết thêm các thuộc tính mà
hỗ trợ, hãy xem tài liệu tham khảo về lớp cho Animation
(có các thuộc tính XML được phần tử này kế thừa).
- Ảnh động thay đổi kích thước. Bạn có thể chỉ định điểm giữa của hình ảnh mà từ đó hình ảnh phát triển ra ngoài hoặc hướng vào trong bằng cách chỉ định
pivotX
và pivotY
. Ví dụ: nếu các giá trị này là 0.0 (góc trên cùng bên trái), thì tất cả các mức tăng đều là giảm và sang bên phải. Đại diện cho ScaleAnimation
.
Thuộc tính:
android:fromXScale
- Số thực có độ chính xác đơn. Bắt đầu độ lệch kích thước X, trong đó 1.0 không thay đổi.
android:toXScale
- Số thực có độ chính xác đơn. Kết thúc độ lệch kích thước X, trong đó 1.0 không thay đổi.
android:fromYScale
- Số thực có độ chính xác đơn. Bắt đầu độ lệch kích thước Y, trong đó 1.0 không thay đổi.
android:toYScale
- Số thực có độ chính xác đơn. Kết thúc độ lệch kích thước Y, trong đó 1.0 không thay đổi.
android:pivotX
- Số thực có độ chính xác đơn. Toạ độ X để duy trì trạng thái cố định khi đối tượng được điều chỉnh theo tỷ lệ.
android:pivotY
- Số thực có độ chính xác đơn. Toạ độ Y để duy trì trạng thái cố định khi đối tượng được điều chỉnh theo tỷ lệ.
Để biết thêm các thuộc tính mà
hỗ trợ, hãy xem tài liệu tham khảo về lớp cho Animation
(có các thuộc tính XML được phần tử này kế thừa).
- Chuyển động theo chiều dọc và/hoặc ngang. Đại diện cho
TranslateAnimation
.
Hỗ trợ các thuộc tính sau ở một trong 3 định dạng sau:
- Giá trị từ -100 đến 100 kết thúc bằng "%", cho biết tỷ lệ phần trăm liên quan đến chính thuộc tính đó.
- Giá trị từ -100 đến 100 kết thúc bằng "%p", cho biết tỷ lệ phần trăm liên quan đến phần tử gốc của thuộc tính đó.
- Giá trị số thực có độ chính xác đơn không có hậu tố, cho biết giá trị tuyệt đối.
Thuộc tính:
android:fromXDelta
- Số thực có độ chính xác đơn hoặc tỷ lệ phần trăm. Độ lệch X bắt đầu. Được biểu thị bằng điểm ảnh so với vị trí thông thường (chẳng hạn như
"5"
), theo tỷ lệ phần trăm so với chiều rộng của phần tử (chẳng hạn như "5%"
) hoặc theo tỷ lệ phần trăm so với chiều rộng của phần tử mẹ (chẳng hạn như "5%p"
).
android:toXDelta
- Số thực có độ chính xác đơn hoặc tỷ lệ phần trăm. Độ lệch X kết thúc. Được biểu thị bằng điểm ảnh so với vị trí thông thường (chẳng hạn như
"5"
), theo tỷ lệ phần trăm so với chiều rộng của phần tử (chẳng hạn như "5%"
) hoặc theo tỷ lệ phần trăm so với chiều rộng của phần tử mẹ (chẳng hạn như "5%p"
).
android:fromYDelta
- Số thực có độ chính xác đơn hoặc tỷ lệ phần trăm. Độ lệch Y bắt đầu. Được biểu thị bằng điểm ảnh so với vị trí thông thường (chẳng hạn như
"5"
), theo tỷ lệ phần trăm so với chiều cao của phần tử (chẳng hạn như "5%"
) hoặc theo tỷ lệ phần trăm so với chiều cao của phần tử mẹ (chẳng hạn như "5%p"
).
android:toYDelta
- Số thực có độ chính xác đơn hoặc tỷ lệ phần trăm. Độ lệch Y kết thúc. Được biểu thị bằng điểm ảnh so với vị trí thông thường (chẳng hạn như
"5"
), theo tỷ lệ phần trăm so với chiều cao của phần tử (chẳng hạn như "5%"
) hoặc theo tỷ lệ phần trăm so với chiều cao của phần tử mẹ (chẳng hạn như "5%p"
).
Để biết thêm các thuộc tính mà
hỗ trợ, hãy xem tài liệu tham khảo về lớp cho Animation
(có các thuộc tính XML được phần tử này kế thừa).
- Ảnh động xoay. Đại diện cho
RotateAnimation
.
Thuộc tính:
android:fromDegrees
- Số thực có độ chính xác đơn. Vị trí góc bắt đầu, tính bằng độ.
android:toDegrees
- Số thực có độ chính xác đơn. Vị trí góc kết thúc, tính bằng độ.
android:pivotX
- Số thực có độ chính xác đơn hoặc tỷ lệ phần trăm. Toạ độ X của tâm xoay. Được biểu thị bằng điểm ảnh so với cạnh trái của đối tượng (chẳng hạn như
"5"
), theo tỷ lệ phần trăm so với cạnh trái của đối tượng (chẳng hạn như "5%"
) hoặc theo tỷ lệ phần trăm so với cạnh trái của vùng chứa mẹ (chẳng hạn như "5%p"
).
android:pivotY
- Số thực có độ chính xác đơn hoặc tỷ lệ phần trăm. Toạ độ Y của tâm xoay. Được biểu thị bằng điểm ảnh so với cạnh trên của đối tượng (chẳng hạn như
"5"
), theo tỷ lệ phần trăm so với cạnh trên của đối tượng (chẳng hạn như "5%"
) hoặc theo tỷ lệ phần trăm so với cạnh trên của vùng chứa mẹ (chẳng hạn như "5%p"
).
Để biết thêm các thuộc tính mà
hỗ trợ, hãy xem tài liệu tham khảo về lớp cho Animation
(có các thuộc tính XML được phần tử này kế thừa).
- ví dụ:
-
Tệp XML được lưu vào res/anim/hyperspace_jump.xml
:
Mã xử lý ứng dụng sau đây áp dụng ảnh động cho ImageView
và bắt đầu ảnh động đó:
Kotlin
val image: ImageView = findViewById(R.id.image)
val hyperspaceJump: Animation = AnimationUtils.loadAnimation
(this, R.anim.hyperspace_jump)
image.startAnimation
(hyperspaceJump)
Java
ImageView image = (ImageView) findViewById(R.id.image);
Animation hyperspaceJump = AnimationUtils.loadAnimation
(this, R.anim.hyperspace_jump);
image.startAnimation
(hyperspaceJump);
- xem thêm:
-
Bộ nội suy
Bộ nội suy là một công cụ sửa đổi ảnh động được xác định trong tệp XML ảnh hưởng đến tốc độ thay đổi trong ảnh động. Công cụ này giúp các hiệu ứng ảnh động hiện có được tăng tốc, giảm tốc, lặp lại, bật nảy lên, v.v.
Bộ nội suy được áp dụng cho phần tử ảnh động có thuộc tính android:interpolator
, giá trị của thuộc tính này tham chiếu đến tài nguyên của bộ nội suy.
Tất cả các bộ nội suy có trong Android đều là lớp con của lớp Interpolator
. Đối với mỗi lớp bộ nội suy, Android sẽ bao gồm một tài nguyên công khai mà bạn có thể tham chiếu để áp dụng bộ nội suy cho ảnh động bằng cách sử dụng thuộc tính android:interpolator
.
Bảng sau đây chỉ định tài nguyên để sử dụng cho từng bộ nội suy:
Dưới đây là cách bạn có thể áp dụng một trong các bộ này bằng thuộc tính android:interpolator
:
...
Bộ nội suy tuỳ chỉnh
Nếu không hài lòng với bộ nội suy do nền tảng cung cấp, bạn có thể tạo tài nguyên bộ nội suy tuỳ chỉnh với các thuộc tính đã sửa đổi.
Chẳng hạn, bạn có thể điều chỉnh mức độ tăng tốc cho AnticipateInterpolator
hoặc điều chỉnh số chu kỳ cho CycleInterpolator
. Để thực hiện việc này, bạn cần tạo tài nguyên bộ nội suy của riêng mình trong tệp XML.
- vị trí tệp:
res/anim/filename.xml
Tên tệp được dùng làm mã nhận dạng tài nguyên.
- loại dữ liệu tài nguyên được biên dịch:
- Con trỏ tài nguyên đến đối tượng bộ nội suy tương ứng
- mã tham chiếu tài nguyên:
-
Trong XML:
@[package:]anim/filename
- cú pháp:
-
<InterpolatorName xmlns:android="http://schemas.android.com/apk/res/android"
android:attribute_name="value"
/>
Nếu bạn không áp dụng bất kỳ thuộc tính nào, thì bộ nội suy của bạn sẽ hoạt động giống hệt như các thuộc tính do nền tảng cung cấp, như nêu trong bảng trước.
- phần tử:
- Xin lưu ý rằng mỗi cách triển khai
Interpolator
, khi được xác định trong XML, sẽ có tên bắt đầu bằng một chữ cái viết thường.
- Tốc độ thay đổi bắt đầu và kết thúc từ từ nhưng tăng tốc ở giữa quá trình.
Không có thuộc tính nào.
- Tốc độ thay đổi bắt đầu từ từ, sau đó tăng tốc dần.
Thuộc tính:
android:factor
- Số thực có độ chính xác đơn. Mức độ tăng tốc. Giá trị mặc định là 1.
- Sự thay đổi bắt đầu lùi lại phía sau rồi hất lên phía trước.
Thuộc tính:
android:tension
- Số thực có độ chính xác đơn. Mức độ căng cần áp dụng. Giá trị mặc định là 2.
- Sự thay đổi bắt đầu lùi lại phía sau, hất lên phía trước và vượt quá giá trị mục tiêu, sau đó kết thúc ở giá trị cuối cùng.
Thuộc tính:
android:tension
- Số thực có độ chính xác đơn. Mức độ căng cần áp dụng. Giá trị mặc định là 2.
android:extraTension
- Số thực có độ chính xác đơn. Giá trị nhân với mức độ căng. Giá trị mặc định là 1,5.
- Thay đổi sẽ bật nảy lên khi kết thúc.
Không có thuộc tính nào
- Lặp lại ảnh động trong một số chu kỳ được chỉ định. Tốc độ thay đổi tuân theo một mẫu hình sin.
Thuộc tính:
android:cycles
- Số nguyên. Số chu kỳ. Giá trị mặc định là 1.
- Tốc độ thay đổi bắt đầu nhanh chóng, sau đó giảm tốc.
Thuộc tính:
android:factor
- Số thực có độ chính xác đơn. Mức độ giảm tốc. Giá trị mặc định là 1.
- Tốc độ thay đổi không đổi.
Không có thuộc tính nào.
- Sự thay đổi hất về phía trước và vượt quá giá trị cuối cùng, sau đó quay trở lại.
Thuộc tính:
android:tension
- Số thực có độ chính xác đơn. Mức độ căng cần áp dụng. Giá trị mặc định là 2.
- ví dụ:
-
Tệp XML được lưu vào res/anim/my_overshoot_interpolator.xml
:
XML ảnh động này áp dụng bộ nội suy:
Ảnh động dạng khung
Ảnh động được xác định trong XML hiển thị một chuỗi hình ảnh theo thứ tự, như một thước phim.
- vị trí tệp:
res/drawable/filename.xml
Tên tệp được dùng làm mã nhận dạng tài nguyên.
- loại dữ liệu tài nguyên được biên dịch:
- Con trỏ tài nguyên đến
AnimationDrawable
- mã tham chiếu tài nguyên:
-
Trong Java:
R.drawable.filename
Trong XML: @[package:]drawable.filename
- cú pháp:
-
<animation-list xmlns:android="http://schemas.android.com/apk/res/android"
android:oneshot=["true" | "false"] >
<item
android:drawable="@[package:]drawable/drawable_resource_name"
android:duration="integer" />
- phần tử:
-
- Bắt buộc. Đây phải là phần tử gốc. Chứa một hoặc nhiều phần tử
.
Thuộc tính:
android:oneshot
- Boolean.
"true"
nếu bạn muốn thực hiện ảnh động một lần; hãy "false"
để lặp lại ảnh động.
- Một khung ảnh động. Phải là phần tử con của phần tử
.
Thuộc tính:
android:drawable
- Tài nguyên có thể vẽ. Đối tượng có thể vẽ để sử dụng cho khung này.
android:duration
- Số nguyên. Thời lượng hiển thị khung này, tính bằng mili giây.
- ví dụ:
-
Tệp XML được lưu vào res/drawable/rocket_thrust.xml
:
Mã xử lý ứng dụng sau đây sẽ đặt ảnh động làm nền cho View
, sau đó phát ảnh động:
Java
ImageView rocketImage = (ImageView) findViewById(R.id.rocket_image);
rocketImage.setBackgroundResource
(R.drawable.rocket_thrust);
rocketAnimation = rocketImage.getBackground()
;
if (rocketAnimation instanceof Animatable
) {
((Animatable)rocketAnimation).start()
;
}
- xem thêm:
-