Android ViewPager做引导页不定页数 代码实例
2014-01-22 15:19
597 查看
最近在用ViewPager做引导界面,并解决了ViewPager向右滑动到最后,再向右滑动无法实现界面跳转的问题。而且要求引导页面是从服务器获取。
所以页面的个数是不定的。效果图:
关键代码:
Demo下载地址:http://download.csdn.net/detail/taotao19880301/6874129
所以页面的个数是不定的。效果图:
关键代码:
package com.example.pagerdemo; import java.util.ArrayList; import java.util.List; import java.util.concurrent.atomic.AtomicBoolean; import android.app.Activity; import android.content.Intent; import android.os.Bundle; import android.os.Handler; import android.support.v4.view.ViewPager; import android.support.v4.view.ViewPager.OnPageChangeListener; import android.util.DisplayMetrics; import android.view.LayoutInflater; import android.view.MotionEvent; import android.view.View; import android.view.View.OnTouchListener; import android.widget.ImageView; public class SplashAdActivity extends Activity implements OnTouchListener{ private ViewPager pager_splash_ad; private ADPagerAdapter adapter; private int flaggingWidth; private int size = 0; private int lastX = 0; private int currentIndex = 0; private CirclePageIndicator indicator; private boolean locker = true; @SuppressWarnings("unchecked") @Override protected void onCreate(Bundle savedInstanceState) { super.onCreate(savedInstanceState); setContentView(R.layout.activity_splash_ad); //计算屏幕密度,滑动大于屏幕一半时才跳转界面 DisplayMetrics dm = new DisplayMetrics(); getWindowManager().getDefaultDisplay().getMetrics(dm); flaggingWidth = dm.widthPixels / 2; List<String> splash_ad = (List<String>) getIntent() .getSerializableExtra("splash_ad"); pager_splash_ad = (ViewPager) findViewById(R.id.pager_splash_ad); //模拟的3个,如果从服务器获取就直接赋值就行 List<View> views = new ArrayList<View>(); for (String str : splash_ad) { View view = LayoutInflater.from(this).inflate( R.layout.view_splash_ad, null); ImageView iv_ad = (ImageView) view.findViewById(R.id.iv_ad); iv_ad.setImageResource(R.drawable.tt); views.add(view); View view1 = LayoutInflater.from(this).inflate( R.layout.view_splash_ad, null); ImageView iv_ad1 = (ImageView) view1.findViewById(R.id.iv_ad); iv_ad1.setImageResource(R.drawable.ww); views.add(view1); View view2 = LayoutInflater.from(this).inflate( R.layout.view_splash_ad, null); ImageView iv_ad2 = (ImageView) view2.findViewById(R.id.iv_ad); iv_ad2.setImageResource(R.drawable.jj); views.add(view2); } size = views.size(); adapter = new ADPagerAdapter(this, views); pager_splash_ad.setAdapter(adapter);
indicator = (CirclePageIndicator) findViewById(R.id.viewflowindic); indicator.setmListener(new MypageChangeListener()); indicator.setViewPager(pager_splash_ad); if (views.size() == 1) { Handler handler = new Handler(); handler.postDelayed(new Runnable() { @Override public void run() { gotoMain(); } }, 1000); } else { // pager_splash_ad.setOnPageChangeListener(new MypageChangeListener()); pager_splash_ad.setOnTouchListener(this); } } private class MypageChangeListener implements OnPageChangeListener { @Override public void onPageScrollStateChanged(int position) { // System.err.println("------position---"+position); // currentItem = position; } @Override public void onPageScrolled(int arg0, float arg1, int arg2) { // TODO Auto-generated method stub } @Override public void onPageSelected(int arg0) { currentIndex = arg0; } } private void gotoMain(){ Intent intent = new Intent(SplashAdActivity.this, SecoundActivity.class); startActivity(intent); finish(); overridePendingTransition(R.anim.alpha_in_anim, R.anim.alpha_out_anim); } @Override public boolean onTouch(View v, MotionEvent event) { switch (event.getAction()) { case MotionEvent.ACTION_DOWN: lastX = (int)event.getX(); break; case MotionEvent.ACTION_MOVE: if((lastX - event.getX()) > flaggingWidth && (currentIndex == size -1) && locker){ locker = false; System.err.println("-------1111-------"); gotoMain(); } break; default: break; } return false; } }
Demo下载地址:http://download.csdn.net/detail/taotao19880301/6874129
相关文章推荐
- android实现ViewPager的Indicator的实例代码
- Android ViewPager实例代码介绍2。
- android ViewPager实现滑动翻页效果实例代码
- Android ViewPager实例代码介绍。
- Android 中 viewpager 滑动指示器的实例代码
- Android 实现ViewPager边界回弹效果实例代码
- Android ViewPagerIndicator详解及实例代码
- Android viewpager在最后一页滑动之后跳转到主页面的实例代码
- android实现ViewPager的Indicator的实例代码
- Android 中ViewPager重排序与更新实例详解
- 【Android UI设计与开发】第01期:引导界面(一)ViewPager介绍和使用详解
- [置顶] Android开发之viewpager导报错误解决方法:错误代码 Caused by: java.lang.ClassNotFoundException: Didn't find class
- 【Android UI设计与开发】2.引导界面(二)使用ViewPager实现欢迎引导页面
- android使用ViewPager实现欢迎引导页
- Android利用ViewPager实现滑动广告板实例源码
- Android中用ViewPager实现多页面滑动切换及动画效果的实例
- Android Fragment滑动组件ViewPager的实例详解
- 【Android UI设计与开发】第01期:引导界面(一)ViewPager介绍和使用详解
- android开发实例-ViewPager
- Android实现APP欢迎页面 - ViewPager实现欢迎引导页面