通過使用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 點擊打開鏈接
覺得可以的話可以點個贊哦!!!