RecycleView水波纹 以及RecycleView的滑动动画

来源:互联网 发布:thrift java c 编辑:程序博客网 时间:2024/05/10 08:52

水波纹第一步:gradler文件

compile 'com.android.support:recyclerview-v7:25.1.0'

第二步

public class MainActivity extends AppCompatActivity {    private RecyclerView recycle;    private ArrayList<String> textList;    private ArrayList<Integer> imgList;    @Override    protected void onCreate(Bundle savedInstanceState) {        super.onCreate(savedInstanceState);        setContentView(R.layout.activity_main);        initView();    }    private void initView() {        recycle = (RecyclerView) findViewById(R.id.recycle);        recycle.setLayoutManager(new LinearLayoutManager(this));        initData();        getPic();        recycle.setAdapter(new MyAdapter(MainActivity.this,textList,imgList));    }    //拿数据    private void initData() {        textList = new ArrayList<>();        for (int i = 0; i <10 ; i++) {            textList.add("我是条目"+i);        }    }    //拿图片    public void getPic() {        imgList = new ArrayList<>();        for (int i = 0; i < 10; i++) {            imgList.add(R.mipmap.ic_launcher);        }    }}//设置数据适配器class MyAdapter extends RecyclerView.Adapter<MyHolder> {    private final Context context;    private final ArrayList<String> textList;    private final ArrayList<Integer> imgList;    public MyAdapter(Context context, ArrayList<String> textList, ArrayList<Integer> imgList) {    this.context=context;        this.textList=textList;        this.imgList=imgList;    }    @Override    public MyHolder onCreateViewHolder(ViewGroup parent, int viewType) {        View v = View.inflate(context, R.layout.recycle_item, null);        //添加属性动画        ObjectAnimator objectAnimator = ObjectAnimator.ofFloat(v, View.TRANSLATION_Y, 500,300,100, 0);        objectAnimator.setDuration(500);        objectAnimator.start();        MyHolder holder =new MyHolder(v);        return holder;    }    @Override    public void onBindViewHolder(MyHolder holder, int position) {        holder.tv.setText(textList.get(position));        holder.img.setImageResource(imgList.get(position));        //使用RippleView点击事件        //动画结束跳转        holder.ripp.setOnRippleCompleteListener(new RippleView.OnRippleCompleteListener() {            @Override            public void onComplete(RippleView rippleView) {                Intent in= new Intent(context,Main2Activity.class);                context.startActivity(in);            }        });    }    @Override    public int getItemCount() {        return textList.size();    }}//设置ViewHolderclass MyHolder extends RecyclerView.ViewHolder {    public final ImageView img;    public final TextView tv;    public final RippleView ripp;    public MyHolder(View itemView) {        super(itemView);        img = (ImageView) itemView.findViewById(R.id.img);        tv = (TextView) itemView.findViewById(R.id.tv);        ripp = (RippleView) itemView.findViewById(R.id.ripp);    }}

第三部水波纹中的 RippleView :

<com.andexert.library.RippleView    android:id="@+id/ripp"    android:layout_width="match_parent"    android:layout_height="match_parent"    app:rv_color="#ffff00"    app:rv_type="rectangle"    app:rv_zoomDuration="@android:integer/config_longAnimTime">




0 0
原创粉丝点击