android viewpager中的幻灯片放映?
我对android viewpager幻灯片有问题。我想在最短时间段后显示viewpager布局。这是我的代码示例。 我的主课:android viewpager中的幻灯片放映?,android,android-viewpager,Android,Android Viewpager,我对android viewpager幻灯片有问题。我想在最短时间段后显示viewpager布局。这是我的代码示例。 我的主课: public class MainActivity extends Activity { private ViewPager mViewPager; private SwipeAdapter adapter; @Override protected void onCreate(Bundle savedInstanceState) {
public class MainActivity extends Activity {
private ViewPager mViewPager;
private SwipeAdapter adapter;
@Override
protected void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
setContentView(R.layout.activity_main);
mViewPager = (ViewPager) findViewById(R.id.pager);
// set the adapter
adapter = new SwipeAdapter(MainActivity.this);
mViewPager.setAdapter(adapter);
mViewPager.setOnPageChangeListener(new OnPageChangeListener() {
@Override
public void onPageSelected(int position) {
}
@Override
public void onPageScrolled(int arg0, float arg1, int arg2) {
}
@Override
public void onPageScrollStateChanged(int arg0) {
}
});
}
}
我的适配器类:
public class SwipeAdapter extends PagerAdapter {
private LayoutInflater mInflater;
private static int[] mLayouts = { R.layout.view_layout1,
R.layout.view_layout2, R.layout.view_layout3, R.layout.view_layout4 };
SwipeAdapter(Context context) {
mInflater = LayoutInflater.from(context);
}
@Override
public void destroyItem(ViewGroup container, int position, Object object) {
container.removeView((View) object);
}
@Override
public Object instantiateItem(ViewGroup container, int position) {
ViewGroup pageView = (ViewGroup) mInflater.inflate(mLayouts[position],
container, false);
container.addView(pageView);
getItemPosition(pageView);
return pageView;
}
@Override
public int getCount() {
return mLayouts.length;
}
@Override
public boolean isViewFromObject(View view, Object obj) {
return view == obj;
}
}
假设我想使viewpager布局在10秒后自动滑动。这怎么可能呢 使用Handler并发送[Empty]MessageDelayed/postdayed,并调用ViewPager上的setCurrentItem使其自动滑动。这里有一些代码
private Handler handler = new Handler();
private Runnable runnable = new Runnable() {
public void run() {
if( position >= 4){
position = 0;
}else{
position = position+1;
}
toBarPager.setCurrentItem(position, true);
handler.postDelayed(runnable, 10000);
}
};
不要忘记删除回调onPause()
另外,不要忘记重新运行onResume()
在哪里获得职位页面RMOVEDE对于您的案例来说没有必要,我编辑了我的代码。对不起,混淆了。而且位置总是从零开始,编辑位置>=3。谢谢您的代码运行良好。我们必须将此句柄放在主类中的什么位置?如果是,那么使用哪种方法如果用户在视图寻呼机中使用滑动手势滑动当前图像,那么此时如何处理自动幻灯片放映位置您可以检查此链接以查看自动幻灯片
@Override
public void onPause() {
super.onPause();
if (handler!= null) {
handler.removeCallbacks(runnable);
}
}
@Override
public void onResume() {
super.onResume(); // Always call the superclass method first
handler.postDelayed(runnable, 10000);
}