突然逛泡网看到的开源感觉非常炫:http://www.jcodecraeer.com/a/opensource/2017/0626/8112.html
起源的Github:https://github.com/Ramotion/cardslider-android
我随便尝试了一下,才艺不精,还是要像作者优化图片的处理,否则像我的Demo一样,滑动卡卡卡~ [滑稽]
做Demo的时候遇到gradle报错问题,我设置安卓版本才恢复,可能需要注意一下: (最低19)
minSdkVersion 19
targetSdkVersion 25
如泡网文章添加依赖:
compile 'com.ramotion.cardslider:card-slider:0.1.0'
MainActivty:(呈现滑动图片的数组,recyclerview的适配器以及使用):
public class MainActivity extends AppCompatActivity {
@BindView(R.id.recyclerview)
RecyclerView recyclerview;
int[] images = {R.mipmap.a1, R.mipmap.a2, R.mipmap.a3, R.mipmap.a4, R.mipmap.a5, R.mipmap.a6};
RecyclerViewAdapter viewAdapter;//适配器
@Override
protected void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
setContentView(R.layout.activity_main);
ButterKnife.bind(this);
recyclerview.setLayoutManager(new CardSliderLayoutManager(this));
viewAdapter = new RecyclerViewAdapter(images, MainActivity.this);
recyclerview.setAdapter(viewAdapter);
new CardSnapHelper().attachToRecyclerView(recyclerview);
}
}
xml:(recyclerview 控件)
<?xml version="1.0" encoding="utf-8"?>
<LinearLayout xmlns:android="http://schemas.android.com/apk/res/android"
android:layout_width="match_parent"
android:layout_height="match_parent"
android:orientation="vertical">
<android.support.v7.widget.RecyclerView
android:id="@+id/recyclerview"
android:layout_width="match_parent"
android:layout_height="match_parent" />
</LinearLayout>
RecyclerViewAdapter: (使用的适配器)
public class RecyclerViewAdapter extends RecyclerView.Adapter<RecyclerViewAdapter.MyViewHolder> {
int[] images;
Context context;
public RecyclerViewAdapter(int[] images, Context context) {
this.images = images;
this.context = context;
}
@Override
public MyViewHolder onCreateViewHolder(ViewGroup parent, int viewType) {
return new MyViewHolder(LayoutInflater.from(context).inflate(R.layout.item, parent, false));
}
@Override
public void onBindViewHolder(MyViewHolder holder, int position) {
holder.imageView.setImageResource(images[position]);
}
@Override
public int getItemCount() {
return images.length;
}
class MyViewHolder extends RecyclerView.ViewHolder {
ImageView imageView;
public MyViewHolder(View itemView) {
super(itemView);
imageView = (ImageView) itemView.findViewById(R.id.imageView);
}
}
}
适配器xml: (使用cardview布局更加流畅,imageview呈现图片)
<?xml version="1.0" encoding="utf-8"?>
<android.support.v7.widget.CardView xmlns:android="http://schemas.android.com/apk/res/android"
xmlns:app="http://schemas.android.com/apk/res-auto"
android:layout_width="match_parent"
android:layout_height="match_parent"
android:orientation="vertical">
<ImageView
android:id="@+id/imageView"
android:layout_width="match_parent"
android:layout_height="match_parent"
app:srcCompat="@mipmap/ic_launcher" />
</android.support.v7.widget.CardView>
实现的项目gif:
看到一个也非常不错的滑动卡片(方法简单):https://github.com/ChenLittlePing/RecyclerCoverFlow