如何为listview设置动画?

时间:2014-10-30 08:18:58

标签: android listview animation

因此,我一直在搜索动画列表视图的教程,我希望能够在它们出现时为这些项目制作动画。

https://lh6.ggpht.com/vs5vNvLr_5XS90eJlgyX43NdpYex7zMniAf8DBSAjM1yV4D0TSDAWB2CTK_6z9NK1TGn=h900-rw

这是我的适配器

public class PostsAdapter extends BaseAdapter{

    private Context context;
    public List<PostList> postList;
    ViewHolder holder;

    public void add(PostList object,int position) {
        postList.add(position,object);
    }

    public PostsAdapter(Context context) {
        this.context=context;
        postList = new ArrayList<PostList>();
    }

    public int getCount() {
        return postList.size();
    }

    public PostList getItem(int position) {

        return postList.get(position);
    }

    @Override
    public long getItemId(int position) {
        return position;
    }
    public View getView(final int position, View convertView, ViewGroup parent) {
        View v = convertView; 
        if(v == null){
            LayoutInflater inflater = (LayoutInflater)getActivity().getSystemService(Context.LAYOUT_INFLATER_SERVICE);
            v = inflater.inflate(R.layout.posts_list, null);
            holder = new ViewHolder(v);
            v.setTag(holder);
         }else{
            holder = (ViewHolder)convertView.getTag();
         }

        holder.title.setText(postList.get(position).postHeader);
        holder.user.setText(postList.get(position).user);
        holder.subclass.setText(postList.get(position).subClass.toLowerCase());
        if(postList.get(position).postBody.contains("jpg")||postList.get(position).postBody.contains("jpeg") || postList.get(position).postBody.contains("png") || postList.get(position).postBody.contains("gif")){
            Glide.with(getActivity().getApplicationContext()).load(postList.get(position).postBody).into(holder.image);
            holder.image.setVisibility(View.VISIBLE);
        }else{
            holder.image.setVisibility(View.GONE);
        }

       return v;
    }
 }

 static class ViewHolder{
 TextView user,title,subclass;
 ImageView image;
  ViewHolder(View v){
      user = (TextView)v.findViewById(R.id.postUser);
      title = (TextView)v.findViewById(R.id.postTitle1);
      subclass = (TextView)v.findViewById(R.id.subClass);
      image = (ImageView)v.findViewById(R.id.postsImage);
    }
}

1 个答案:

答案 0 :(得分:1)

twotoasters 创建了一个库来应用列表项动画。你可以在Github上找到这个名为 JazzyListView 的文库。

您还可以在Play商店的JazzyListView Sample上查看示例应用程序。

<强> JazzyListView

  

JazzyListView是ListView的扩展,旨在在列表项视图可见时为其设置动画。通过在代码或XML布局属性中设置效果,可以使用许多预构建的捆绑效果。此外,可以通过实现JazzyEffect来使用自定义效果。

这个库非常强大,支持许多不同的动画。

JazzyList Item animation