2012-01-17 69 views
10

我想動畫列表視圖的項目。目前,我正在應用添加新項目時列表項目上的Transition Animation。但這不是我想要實現的動畫。我希望在列表視圖中添加新項目時,整個列表視圖會移動一個位置,讓新添加的項目讓位。將動畫添加到Android中的列表視圖

目前我使用的代碼是:

set = new AnimationSet(true); 

    animation = new AlphaAnimation(0.0f, 1.0f); 
    animation.setDuration(50); 
    set.addAnimation(animation); 

    animation = new TranslateAnimation(
     Animation.RELATIVE_TO_SELF, 0.0f,Animation.RELATIVE_TO_SELF, 0.0f, 
     Animation.RELATIVE_TO_SELF, -1.0f,Animation.RELATIVE_TO_SELF, 0.0f 
    ); 
    animation.setDuration(150); 
    set.addAnimation(animation); 

    LayoutAnimationController controller = new LayoutAnimationController(set, 1.0f); 
    l.setLayoutAnimation(controller); 
    l.setAdapter(listAdaptor); 

然後同時通過按鈕添加項目的onClick

l.startLayoutAnimation(); 

任何其他建議實現這樣的動畫。

回答

14

我得到了解決方案。我在我的自定義適配器的getView方法中爲每個添加的元素設置動畫。

public View getView(int position, View convertView, ViewGroup parent) { 

     View v = convertView; 

     if (v == null) { 
      LayoutInflater vi = (LayoutInflater) getActivity() 
        .getSystemService(Context.LAYOUT_INFLATER_SERVICE); 
      v = vi.inflate(R.layout.simple_list_item_1, null); 
     } 

     ListData o = list.get(position); 
     TextView tt = (TextView) v.findViewById(R.id.toptext); 

     tt.setText(o.content); 

     Log.d("ListTest", "Position : "+position); 
     if(flag == false) { 
     Animation animation = AnimationUtils.loadAnimation(getActivity(), R.anim.slide_top_to_bottom); 
     v.startAnimation(animation);} 
     return v; 
    } 

從而實現了我所說的動畫。

+0

我在'R.anim.slide_top_to_bottom'找到錯誤anim無法解析或不是字段 – Nishant 2012-05-24 05:52:56

+0

您是否在文件夾中添加xml? – ASH 2012-05-24 06:27:17

+0

不可以你給那個文件的代碼嗎? – Nishant 2012-05-24 07:06:20