我有这个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) {
//profile.getInstalled();
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中:
<ListView
android:id="@+id/list"
android:layout_width="fill_parent"
android:layout_height="fill_parent"
android:layout_below="@+id/imageView9"
android:divider="#8A8A8A"
android:cacheColorHint="#00000000"
android:dividerHeight="0.9dp"
android:listSelector="#ccc"
android:choiceMode="singleChoice"
android:layout_marginBottom="50dp"
android:background="#fff"
>
</ListView>
我一直在寻找这种或类似效果的解决方案,但我找不到任何帮助。
ListView从Facebook加载朋友,当在ListView中选择朋友时,它现在做的是将所选项目更改为灰色,但我希望它做的是创建“滑动”动画,有颜色。像这样:
在选择项目之前,这是ListView:
选择项目后,颜色会从右向左滑动:
完成后应该看起来像这样:
我怎么能创造这种效果?
答案 0 :(得分:0)
您必须使用Android Animations。一种方法是创建所选用户View
的位图,并将其放在ListView
行的前面,然后从左到右开始用你想要的颜色绘制它。完成绘制后,更改行背景颜色并删除位图。
要绘制单行,您必须在适配器中创建某种地图,并在适配器的on Views
方法中跟踪您必须使用背景颜色绘制的getView()
。< / p>
使用类似方法here重新排序ListView
。