水波纹第一步: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(); } } //设置ViewHolder class 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">