2012-01-26 18 views
6

Vì vậy, đây là phim hoạt hình XML của tôiTôi đang sử dụng hình ảnh động Android để xoay một ImageView, nhưng phong trào là rất choppy

<?xml version="1.0" encoding="utf-8"?> 
<rotate 
    xmlns:android="http://schemas.android.com/apk/res/android" 
    android:fromDegrees="0" 
    android:toDegrees="360" 
    android:pivotX="50%" 
    android:pivotY="50%" 
    android:duration="3000" 
    android:repeatCount="infinite" 
    android:interpolator="@android:anim/linear_interpolator" /> 

Tôi làm đơn xin này để một ImageView như một phương tiện để xoay một hình ảnh. Nhưng chuyển động thì rất bừa bộn. Mỗi khi hình ảnh quay, nó xuất hiện để bỏ qua hai điểm trong vòng xoay của nó cách nhau 180 độ. Tôi không thể thấy bất kỳ lý do gì tại sao điều này xảy ra, có ai gặp khó khăn này và tìm thấy một sửa chữa không?

+0

Thử đi từ 0 đến 359 độ. – Noah

+0

Didnt thực hiện bất kỳ sự khác biệt:/ –

+1

Bạn đang cố gắng trong trình mô phỏng hoặc trên một thiết bị thực? Nên mượt mà trên thiết bị từ trung đến cao cấp. –

Trả lời

0

Thử đặt một bộ nội suy khác. FYI, nội suy mặc định được sử dụng khi tạo hoạt ảnh trong Android không phải là một nội suy tuyến tính, mà thay vào đó là AccelerateDecelerateInterpolator.

+0

Tôi cần một vòng quay tuyến tính trơn tru. Tôi đang làm động một bánh xe quay –

+0

Oh và quên nói, tôi đã thử điều này và nó không hoạt động hoặc –

+0

bạn có lẽ đang áp dụng hiệu ứng xoay cùng với một số hiệu ứng khác không? (tức là hiệu ứng di chuyển hay cái gì đó? đó có thể là một vấn đề). – asenovm

0

Tôi không biết tại sao bạn không nhận được kết quả đúng. Này làm việc cho tôi

Bạn có thể sử dụng được xây dựng trong android.R.anim.linear_interpolator từ tập tin XML hoạt hình của bạn với

android:interpolator="@android:anim/linear_interpolator". 

Hoặc bạn có thể tạo tập tin suy XML của riêng bạn trong dự án của bạn, ví dụ tên nó

res/anim/linear_interpolator.xml:

<?xml version="1.0" encoding="utf-8"?> 
<linearInterpolator xmlns:android="http://schemas.android.com/apk/res/android" /> 

Và thêm vào phim hoạt hình XML của bạn:

android:interpolator="@anim/linear_interpolator" 

và sử dụng

android:toDegrees="360" 

để

android:toDegrees="359" 

như 360 và 0 độ là cùng

+0

Bạn đã giải quyết được vấn đề của mình chưa? – Sameer

-1

thử này tạo một file xml trong drawable và đưa drawable của bạn có đang ở dưới, tên tập tin này my_progress_indeterminate.xml:

<?xml version="1.0" encoding="utf-8"?><animated-rotate xmlns:android="http://schemas.android.com/apk/res/android" 
android:drawable="@drawable/your_rotating_image" 
android:pivotX="50%" 
android:pivotY="50%" /> 

Xin lỗi, nhưng bạn phải để đặt nó trong thanh tiến trình như thế này là đơn giản nếu hình ảnh là tĩnh giống như xem hình ảnh không cần phải làm bất cứ mã hóa khác nhau cho việc này chỉ đơn giản là viết như thế này trong cách bố trí tập tin xml của bạn:

<ProgressBar android:indeterminateDrawable="@drawable/my_progress_indeterminate" android:layout_height="100dp" android:layout_width="100dp"></ProgressBar> 
+0

điều gì sẽ xảy ra nếu bạn cần một lần xem hình ảnh hoặc chỉ một id hoạt ảnh để chạy trên các chế độ xem của bạn? – desgraci

0

Một giả lập luôn là choppy . Hãy thử gỡ lỗi trong thiết bị. Tăng tốc độ quay nếu không.

0

Nếu vòng xoay này quan trọng như vậy, tôi đoán đó là một phần rất quan trọng trong giao diện người dùng của bạn.

Trong trường hợp đó, bạn nên quan tâm đến việc triển khai OpenGL đơn giản sẽ giúp bạn giải quyết vấn đề của mình.

Tôi khuyên bạn nên sử dụng http://www.andengine.org/ - đơn giản và dễ thực hiện.

Trên AndEngineExamples bạn có thể tìm thấy mẫu mã tốt mà thậm chí còn quá nhiều!

Các vấn đề liên quan