在安卓中,怎麼通過ViewPager來實現輪播圖的效果?
int currentPage = viewPager.getCurrentItem()%list.size();
//把當前頁面的描述資訊給新增進來
tv_intro.setText(list.get(currentPage).getIntro());
//這句話的目的就是假如當前頁面的角標和小圓點的角標相等,那麼小圓點就設定為選中的狀態,就會改變顏色
for (int i = 0; i < dot_layout.getChildCount(); i++) {
dot_layout.getChildAt(i).setEnabled(i==currentPage);
}
}
//把圖片設定一個介面卡
class MyPagerAdapter extends PagerAdapter{
//5張圖片輪播100次
@Override
public int getCount() {
return 100;
}
@Override
//預載入輪播圖片的功能,這個方法是固定格式
public boolean isViewFromObject(View view, Object object) {
return view==object;
}
@Override
//這個方法最重要的是把輪播圖顯示出來
public Object instantiateItem(ViewGroup container, int position) {
//把layout.adapter_ad這個佈局載入到view,目的是輪播圖可以在介面上顯示
View view = View.inflate(MainActivity.this, R.layout.adapter_ad, null);
//找到ImageView這個控制元件
ImageView imageView = (ImageView) view.findViewById(R.id.image);
//ad中包含圖片id和描述資訊,有5張圖片,可以最多輪播100次,百分號的目的就是取餘,也就是說當角標為98的時候,輪播的是第三張圖片
//通過list集合中的角標可以得到當前頁面的圖片資訊,也就得到圖片的id資訊
Ad ad = list.get(position%list.size());
//通過圖片的id把這五張圖片載入到ImageView中
imageView.setImageResource(ad.getIconResId());
//一定不能少,將view加入到viewPager中
container.addView(view);
//然後返回view
return view;
}
/**
* 銷燬page
* position: 當前需要消耗第幾個page
* object:當前需要消耗的page
*/
//這個方法的意思是,當輪播圖片的時候,從第一張圖片輪播到第二張圖片的時候,第一張圖片要銷燬,這個是固定模式
@Override
public void destroyItem(ViewGroup container, int position, Object object) {
container.removeView((View) object);
}
}
}