2011-06-03 27 views
6

Câu hỏi của tôi, có thể tạo hoạt ảnh cho một mục trong danh sách hoạt ảnh hay không. Cụ thể, giả sử bạn có:Android làm động một danh sách hoạt ảnh

<animation-list xmlns:android="http://schemas.android.com/apk/res/android" android:oneshot="true"> 
    <item android:drawable="@drawable/rocket_thrust1" android:duration="200" /> 
    <item android:drawable="@drawable/rocket_thrust2" android:duration="200" /> 
    <item android:drawable="@drawable/rocket_thrust3" android:duration="200" /> 
</animation-list> 

Tôi muốn làm mờ alpha của mỗi <item> thay vì đơn giản nhảy từ hình này sang hình ảnh tiếp theo, có thể không?

Trả lời

3

Bạn sẽ cần phải sử dụng hình động tweened để thực hiện việc này. Về cơ bản những gì bạn cần làm là có hai đối tượng ImageView, một cho hình ảnh hiện tại và một cho hình ảnh mới. Tạo hai hình ảnh động bởi lệnh Tween để res/anim/fadeout.xml:

<?xml version="1.0" encoding="utf-8"?> 
<alpha xmlns:android="http://schemas.android.com/apk/res/android" 
    android:fromAlpha="1.0" 
    android:toAlpha="0.0" 
    android:startOffset="500" 
    android:duration="500" /> 

và res/anim/fadein.xml:

<?xml version="1.0" encoding="utf-8"?> 
<alpha xmlns:android="http://schemas.android.com/apk/res/android" 
    android:fromAlpha="0.0" 
    android:toAlpha="1.0" 
    android:startOffset="500" 
    android:duration="500" /> 

Sau đó sử dụng một widget ImageSwitcher để chuyển đổi giữa các quan điểm:

@Override 
public void onCreate(Bundle savedInstanceState) 
{ 
    super.onCreate(savedInstanceState); 
    LinearLayout ll = new LinearLayout(this); 
    ll.setOrientation(LinearLayout.VERTICAL); 
    setContentView(ll); 
    final ImageSwitcher is = new ImageSwitcher(this); 
    is.setOutAnimation(this, R.anim.fadeout); 
    is.setInAnimation(this, R.anim.fadein); 
    ImageView iv1 = new ImageView(this); 
    iv1.setImageResource(R.drawable.icon); 
    is.addView(iv1); 
    is.showNext(); 
    ll.addView(is); 

    Button b = new Button(this); 
    ll.addView(b); 

    b.setOnClickListener(new OnClickListener() 
    { 

     @Override 
     public void onClick(View v) 
     { 
      ImageView iv2 = new ImageView(MainActivity.this); 
      iv2.setImageResource(R.drawable.icon2); 
      is.addView(iv2); 
      is.showNext(); 
     } 
    }); 
} 

Có một loạt các bài viết về my blog về hoạt ảnh được tweened.

+0

Không hoàn toàn chắc chắn nếu đây là những gì tôi đang tìm kiếm. Tôi đang cố gắng tạo hiệu ứng một màn hình giật gân trong khi ứng dụng tải xuống dữ liệu, vì vậy tôi không chỉ đơn giản là có một hình ảnh tĩnh. Hoạt ảnh sẽ chứa tối thiểu 4 hình ảnh và hoạt ảnh sẽ tự diễn ra - không có tương tác người dùng – tomislav2012

+0

Tôi đã sử dụng nút để giữ mã đơn giản. Bạn có thể sử dụng ImageSwitcher với chuỗi nền để định kỳ thay đổi hình ảnh. –

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