2012-04-18 4 views
11

Tôi sẽ xoay hình ảnh trong ứng dụng của tôi. Tất cả hoạt động tốt với Xoay. Nhưng trong khi hoạt ảnh xoay của tôi kết thúc, hình ảnh wil trở về vị trí trước đó của nó. Tôi muốn là duy trì hình ảnh đó với trạng thái xoay đó và không để nó trở lại trạng thái thực của nó.Android: Xoay hoạt hình trở lại trạng thái thực sau khi hoàn thành hoạt ảnh?

Vậy làm thế nào để làm cho nó có thể? Để xoay hình ảnh Tôi đang sử dụng mã dưới đây:

<?xml version="1.0" encoding="utf-8"?> 

<rotate xmlns:android="http://schemas.android.com/apk/res/android" 
    android:pivotX="50%" 
    android:pivotY="50%" 
    android:fromDegrees="0" 
    android:toDegrees="30" 
    android:duration="2000"> 

</rotate> 

và áp dụng nó vào ImgeView như:

myImageView.startAnimation(rotateRight); 

Vì vậy, giúp tôi về vấn đề này.

Trả lời

24

Xem How can I animate a view in Android and have it stay in the new position/size?

Bên trong thẻ <set, sử dụng

android:fillAfter="true" 
android:fillEnabled="true" 

Nhìn chung, hoạt hình không làm thay đổi các tính chất thực tế của View, nó chỉ làm sinh động nó. Nếu bạn muốn thay đổi các thuộc tính thực tế, sử dụng AnimationListener và lắng nghe onAnimationEnd và tự thực hiện các thay đổi.

+0

OK, hãy để tôi dùng thử. –

+0

Tôi nghĩ công việc của nó. –

+1

Thuộc tính này không cần thiết: android: fillEnabled = "true". Điều này là bắt buộc đối với thuộc tính này: android: fillBefore. Xem xét điều này: https://developer.android.com/reference/android/view/animation/Animation.html#attr_android:fillAfter. – Arash

2

Đầu tiên có được một thể hiện của phim hoạt hình sử dụng

Animation anim = AnimationUtils.loadAnimation(context, R.anim.animation); 

"R.anim.animation" đề cập đến bất cứ điều gì hình ảnh động của bạn.

đặt trình nghe hoạt ảnh trên hoạt ảnh này bằng cách sử dụng.

anim.setAnimationListener 

Hiển thị chế độ xem trong phương thức onAnimationCompleted() của AnimationListener.

Điều này sẽ hiệu quả.

2

setFillSau và setFillEnable là câu trả lời bạn cần.