Android ListView OnItemClick动画

时间:2014-04-28 18:22:31

标签: android android-listview android-animation

我有这个从Facebook上取友的ListView:

@Override
        public void onComplete(List<Profile> friends) {

            runOnUiThread(new Runnable() {
                @Override
                public void run() {
                    mSpinner.setVisibility(View.GONE);
                    mSpinner.clearAnimation();
                }
                });

            // populate list
            List<String> values = new ArrayList<String>();
            for (Profile profile : friends) {
                values.add(profile.getName());
            }



            ArrayAdapter<String> friendsListAdapter = new ArrayAdapter<String>(getApplicationContext(), R.layout.list_items2, values);
            friendsListAdapter.sort(new Comparator<String>() {
                @Override
                public int compare(String lhs, String rhs) {
                    return lhs.compareTo(rhs);    
                }
            });
            mFriendsList.setAdapter(friendsListAdapter);
        }
    };

我有这个动画xml:

<set xmlns:android="http://schemas.android.com/apk/res/android">
 <translate android:fromXDelta="100%p" android:toXDelta="0"
     android:duration="300"/>
   <alpha android:fromAlpha="0.0" android:toAlpha="1.0"
     android:duration="300" />
</set>

我已经尝试过查找如何向ListView添加动画的示例,但我无法让它们使用我的代码,我想创建的是当单击ListView中的项目时,它启动动画。我如何使用OnItemClick将其添加到我的代码中?

1 个答案:

答案 0 :(得分:5)

您可以使用onclick中的视图,并在单击其中一个listView时使用它来设置动画:

     listView.setOnItemClickListener(new OnItemClickListener() {

                @Override
                public void onItemClick(AdapterView<?> av, final View view, final int i, long i2) {

                  Animation hyperspaceJumpAnimation = AnimationUtils.loadAnimation(this, R.anim.YOUR_ANIMATION);
                  view.startAnimation(hyperspaceJumpAnimation);

            }
            });