2013-02-20 47 views
10

Tôi đang cố gắng tìm hiểu cách tạo hoạt ảnh lật giữa 2 đoạn.Hoạt ảnh lật tùy chỉnh giữa các gói hỗ trợ android fragments

Tôi đã thử đào tạo CardFlip làm hướng dẫn, nhưng dường như không thể đạt được điều đó. Tôi đang sử dụng gói hỗ trợ Android và đặt nó thành hoạt ảnh hai chiều nhưng không thành công.

Làm cách nào để triển khai hoạt ảnh lật giữa đoạn?

đây là 2 xml đầu tiên tôi đã tạo từ hướng dẫn, có thể bạn có thể thấy nếu đang làm điều gì đó sai. screen_flip_left_in.xml:

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

    <!-- Before rotating, immediately set the alpha to 0. --> 
    <alpha 
     android:valueFrom="1.0" 
     android:valueTo="0.0" 
     android:propertyName="alpha" 
     android:duration="0" /> 

    <!-- Rotate. --> 
    <rotate 
     android:valueFrom="-180" 
     android:valueTo="0" 
     android:propertyName="rotationY" 
     android:interpolator="@android:anim/accelerate_decelerate_interpolator" 
     android:duration="@integer/card_flip_time_full"/> 

    <!-- Half-way through the rotation (see startOffset), set the alpha to 1. --> 
    <alpha 
     android:valueFrom="0.0" 
     android:valueTo="1.0" 
     android:propertyName="alpha" 
     android:startOffset="@integer/card_flip_time_half" 
     android:duration="1" /> 
</set> 

screen_flip_left_out.xml:

<?xml version="1.0" encoding="utf-8"?> 
<set xmlns:android="http://schemas.android.com/apk/res/android" > 
     <!-- Rotate. --> 
    <rotate 
     android:valueFrom="0" 
     android:valueTo="180" 
     android:propertyName="rotationY" 
     android:interpolator="@android:anim/accelerate_decelerate_interpolator" 
     android:duration="@integer/card_flip_time_full" /> 

    <!-- Half-way through the rotation (see startOffset), set the alpha to 0. --> 
    <alpha 
     android:valueFrom="1.0" 
     android:valueTo="0.0" 
     android:propertyName="alpha" 
     android:startOffset="@integer/card_flip_time_half" 
     android:duration="1" /> 

</set> 
+0

Điều gì không hoạt động? cụ thể là mã bị lỗi? Chi tiết xin vui lòng. – QVDev

+0

@QVDev trước hết, tôi không thể sử dụng các đối tượng từ hướng dẫn vì nó không có sẵn trong gói hỗ trợ Android, do đó, mã bị treo ở đó cho đến khi tôi chuyển sang hoạt hình tween. và sau đó, tôi không nhận được bất kỳ hiệu ứng lật nào cả. tôi không chắc chắn cho dù đó là bởi vì tôi sử dụng một yếu tố nội suy khác nhau ở đó; tôi sử dụng android: interpolator = "@ android: anim/accelerate_decelerate_interpolator" vì tôi cần hỗ trợ xuống cấp api 8 và hướng dẫn trong api 11 trở lên. – irobotxxx

+0

Vì vậy, khi bạn thay đổi nó thành tween nó hoạt động đúng? Điều này thực sự có thể là do mức api. Có thể sử dụng tween cho api cũ và lật cho api mới hơn? Hoặc tạo hoạt ảnh lật tùy chỉnh – QVDev

Trả lời

1

android: propertyName chỉ dành cho ObjectAnimator (Honeycomb +) hình ảnh động, không xem hình ảnh động từ Gingerbread. Chỉ có thể sử dụng hoạt ảnh lật thẻ bằng cách sử dụng trình tạo ảnh động của Honeycomb api. Tôi đã tạo một ngã ba của thư viện hỗ trợ để cho phép sử dụng Apis Animator từ NineOldAndroids để chuyển đổi đoạn. Sử dụng chi nhánh chuyển đổi hoạt ảnh của github project của tôi. Khi bạn có thư viện hỗ trợ sửa đổi, hãy xem http://developer.android.com/training/animation/cardflip.html để làm cho trình hoạt ảnh xml.

+0

Thậm chí không thể nhập dự án của bạn vào nhật thực. Cố gắng làm điều đó trong vài giờ (bout 4hrs) liên tiếp - không may mắn. Mỗi khi có điều gì đó sai hoặc bị nhỡ trong dự án. Ngoài ra dự án của bạn muốn ActionBarSherlock trong đó sử dụng hỗ trợ-v4 của chính nó. Bạn có thể vui lòng chỉ cần cung cấp một jar biên dịch của phiên bản lib supportv4 của bạn (như trong v4/bin)? – Stan

0

Xml của bạn nên chứa các giá trị bên trong đối tượng Thẻ đối tượng, không phải bên trong thẻ alpha và xoay. ObjectAnimator có propertyName trong đó bạn đã chỉ định các giá trị thuộc tính.

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