Reputation: 1187
I'm using viewpager library to implement image slider but don't know how to implement it to auto scroll. here is my code.
ViewPagerAdapter.java
public class ViewPagerAdapter extends FragmentPagerAdapter implements IconPagerAdapter{
private int[] Images = new int[] { R.drawable.viewpager, R.drawable.viewpager,
R.drawable.viewpager, R.drawable.viewpager,R.drawable.viewpager, R.drawable.viewpager
};
protected static final int[] ICONS = new int[] { R.drawable.logo,
R.drawable.logo, R.drawable.logo, R.drawable.logo,R.drawable.logo, R.drawable.logo };
private int mCount = Images.length;
public ViewPagerAdapter(FragmentManager fm) {
super(fm);
}
@Override
public Fragment getItem(int position) {
return new SliderFragment(Images[position]);
}
@Override
public int getCount() {
// TODO Auto-generated method stub
return mCount;
}
public int getIconResId(int index) {
return ICONS[index % ICONS.length];
}
public void setCount(int count) {
if (count > 0 && count <= 10) {
mCount = count;
notifyDataSetChanged();
}
}
}
SliderFragment.java
public class SliderFragment extends SherlockFragment {
int imageResourceId;
public SliderFragment(int i) {
imageResourceId = i;
}
@Override
public View onCreateView(LayoutInflater inflater, ViewGroup container,
Bundle savedInstanceState) {
ImageView image = new ImageView(getActivity());
image.setImageResource(imageResourceId);
LinearLayout layout = new LinearLayout(getActivity());
layout.setLayoutParams(new LayoutParams(LayoutParams.MATCH_PARENT,
LayoutParams.MATCH_PARENT));
layout.setGravity(Gravity.CENTER);
layout.addView(image);
return layout;
}
}
MainActivity.java
mAdapter = new ViewPagerAdapter(getSupportFragmentManager());
vPager = (ViewPager) findViewById(R.id.pager);
pIndicator = (PageIndicator) findViewById(R.id.indicator);
vPager.setAdapter(mAdapter);
pIndicator.setViewPager(vPager);
((CirclePageIndicator) pIndicator).setSnap(true);
Please guide me how can i implement it with auto scroll so that images are scrolling automatically after the predefined time.
Upvotes: 1
Views: 5839
Reputation: 1285
page=0;
timer=new TimerTask() {
@Override
enter code here
public void run() {
handler.post(new Runnable() {
@Override
public void run() {
viewPager.setCurrentItem(page % 4); // 4= no. of page in viewpager
page++;
}
});
}
};
Timer time=new Timer();
time.schedule(timer, 0, 3000); //3000 millisecond for replace the viewpager page
Upvotes: 2
Reputation: 1187
I Solved it using the timer thread. After specific time i change the view pager image which become the auto scroll.
Upvotes: 0