1. 程式人生 > >ViewPager 輪播圖,新增指示點

ViewPager 輪播圖,新增指示點

效果圖
重要的地方都加了註釋,

public class MyViewpagerFragment extends Activity {

    private ViewPager mViewPager;
    private List<View> mViews = new ArrayList<>();//輪播頁集合
    private ImageView[] mImageViews;//指示點集合
    private ImageView imageView ;
    private LinearLayout mDot;//指示點

    @Override
    protected
void onCreate(Bundle savedInstanceState) { super.onCreate(savedInstanceState); setContentView(R.layout.activity_my_viewpager_fragment); initView(); } private void initView() { mViewPager = (ViewPager) findViewById(R.id.id_viewpager); mDot = (LinearLayout) findViewById(R.id.viewGroup); /**將佈局新增到 Viewpager 中*/
LayoutInflater inflater = LayoutInflater.from(this); View tab01 = inflater.inflate(R.layout.tan01, null); View tab02 = inflater.inflate(R.layout.tan02, null); View tab03 = inflater.inflate(R.layout.tan03, null); View tab04 = inflater.inflate(R.layout.tan04, null); mViews.add(tab01); mViews.add(tab02); mViews.add(tab03); mViews.add(tab04); mImageViews = new
ImageView[mViews.size()]; for (int i= 0; i < mViews.size();i++){ imageView = new ImageView(this); imageView.setLayoutParams(new ViewGroup.LayoutParams(ViewGroup.LayoutParams.WRAP_CONTENT, ViewGroup.LayoutParams.WRAP_CONTENT)); mImageViews[i] = imageView; if (i == 0) { mImageViews[i].setBackgroundResource(R.drawable.dot_focus); } else { mImageViews[i].setBackgroundResource(R.drawable.dot_blur); } // 輪播框架id 例項化group // 在group框架中新增view,i就是圓點。 mDot.addView(mImageViews[i]); } mViewPager.setAdapter(new mPagerAdapter(mViews)); mViewPager.setOnPageChangeListener(new PageChangeListener()); } /**滑動監聽器*/ private class PageChangeListener implements ViewPager.OnPageChangeListener { @Override public void onPageScrolled(int position, float positionOffset, int positionOffsetPixels) { } /**滑動完成後呼叫*/ @Override public void onPageSelected(int position) { for (int i=0; i < mImageViews.length; i++){ mImageViews[i].setBackgroundResource(R.drawable.dot_focus); if (position != i){ mImageViews[i].setBackgroundResource(R.drawable.dot_blur); } } } @Override public void onPageScrollStateChanged(int state) { } } private class mPagerAdapter extends PagerAdapter { private List<View> views = null; public mPagerAdapter(List<View> mViews) { this.views = mViews; } /**銷燬Item*/ @Override public void destroyItem(ViewGroup container, int position, Object object) { ((ViewPager) container).removeView(views.get(position)); } /**初始化Item*/ @Override public Object instantiateItem(ViewGroup container, int position) { View view = mViews.get(position); container.addView(view); return view; } /**有多少個頁面*/ @Override public int getCount() { return mViews.size(); } @Override public boolean isViewFromObject(View view, Object object) { return view == object; } } }