android使用ViewPage實現Grally畫廊的卡片式效果

通過使用ViewPage實現Grally畫廊的卡片式效果,簡單易懂易實現。

之前一直在github與網上搜索資料,查看了很多比如RecyclerView實現畫廊的效果,ViewPage實現畫廊的效果,但是都沒有我想要的既簡單又達到我想要的效果。所以我總結了一下查看的這麼多資料,自己弄了一個簡單的自己想要的效果出來。

編寫使用到viewpage,cardview兩個控件就可以簡單的實現了卡片式畫廊的效果。先看看下面效果圖


                  




再來看看主活動頁面的代碼,主頁就這麼點代碼就可以簡單的實現了效果。比我在網上查看的資料的代碼啊少了很多,而且簡單易懂



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  點擊打開鏈接

覺得可以的話可以點個贊哦!!!


發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章