android使用ViewPage实现Grally画廊的卡片式效果

通过使用ViewPage实现Grally画廊的卡片式效果,简单易懂易实现。

之前一直在github与网上搜索资料,查看了很多比如RecyclerView实现画廊的效果,ViewPage实现画廊的效果,但是都没有我想要的既简单又达到我想要的效果。所以我总结了一下查看的这么多资料,自己弄了一个简单的自己想要的效果出来。

编写使用到viewpage,cardview两个控件就可以简单的实现了卡片式画廊的效果。先看看下面效果图


android使用ViewPage实现Grally画廊的卡片式效果_第1张图片                  android使用ViewPage实现Grally画廊的卡片式效果_第2张图片




再来看看主活动页面的代码,主页就这么点代码就可以简单的实现了效果。比我在网上查看的资料的代码啊少了很多,而且简单易懂



public class MainActivity extends AppCompatActivity {

    private ViewPager mViewCard;

    @Override
    protected void onCreate(Bundle savedInstanceState) {
        super.onCreate(savedInstanceState);
        setContentView(R.layout.activity_main);
        initView();
    }

    private void initView() {
        mViewCard = (ViewPager) findViewById(R.id.vp_card);
        mViewCard.setAdapter(new ViewPagerCardAdapter());
        mViewCard.setOffscreenPageLimit(2);//预加载2个
        mViewCard.setPageMargin(30);//设置viewpage之间的间距
        mViewCard.setClipChildren(false);
        mViewCard.setPageTransformer(true, new CardTransformer());
    }

    private class ViewPagerCardAdapter extends PagerAdapter {
        @Override
        public int getCount() {
            return 6;
        }

        @Override
        public boolean isViewFromObject(View view, Object object) {
            return view == object;
        }

        @Override
        public Object instantiateItem(ViewGroup container, int position) {
            View view = LayoutInflater.from(MainActivity.this).inflate(R.layout.item_task_viewcard, null);

            TextView cardNumber = view.findViewById(R.id.tv_task_card_number);
            cardNumber.setText("任务" + (position + 1));

            container.addView(view);
            return view;
        }

        @Override
        public void destroyItem(ViewGroup container, int position, Object object) {
            container.removeView((View) object);

        }
    }

代码的下载可以到我的GitHub上下载下来:https://github.com/llengnuo/ViewPageCard  点击打开链接

觉得可以的话可以点个赞哦!!!


你可能感兴趣的:(android小功能)