android----------用ViewPage实现滑动效果
来源:互联网 发布:淘宝交易指数是什么 编辑:程序博客网 时间:2024/05/21 08:50
一、效果图
先上实现效果:
实现滑动效果主要用到的类是:android.support.v4.view.ViewPager
二、代码实现
布局代码
<?xml version="1.0" encoding="utf-8"?><RelativeLayout xmlns:android="http://schemas.android.com/apk/res/android" android:layout_width="match_parent" android:layout_height="match_parent"> <android.support.v4.view.ViewPager android:id="@+id/welcome_viewpager" android:layout_width="wrap_content" android:layout_height="wrap_content" android:layout_gravity="center" /></RelativeLayout>
主要代码(从项目中扣出来)
public class WelcomeActivity extends BasicActivity{ @ViewInject(id = R.id.welcome_viewpager) private ViewPager wel_viewPager; private PagerAdapter pagerAdapter; private ArrayList<View> viewlist; private Preference preference; //三张图片 private int[] pic_ids = { R.mipmap.welcome_v1, R.mipmap.welcome_v2, R.mipmap.welcome_v3 }; // 位移量 private int offset; // 记录当前的位置 private int curpos = 0; // 记录滑动手势的按下和抬起的位置,用于判断最后一页是否左滑从而进入主页面 private float lastx = 0, curx = 0; @Override protected void onCreate(Bundle savedInstanceState) { super.onCreate(savedInstanceState); setContentView(R.layout.activity_welcome); // 判断首次使用 preference = Preference.instance(this); initviewpage(); handler.postDelayed(runnable, 2000); } private void initviewpage() { viewlist = new ArrayList<View>(); for (int i = 0; i < pic_ids.length; i++) { ImageView iv = new ImageView(this); iv.setImageResource(pic_ids[i]); ViewGroup.LayoutParams params = new ViewGroup.LayoutParams( ViewGroup.LayoutParams.MATCH_PARENT, ViewGroup.LayoutParams.MATCH_PARENT); iv.setLayoutParams(params); iv.setScaleType(ImageView.ScaleType.CENTER_CROP);// 图片按等比缩放 viewlist.add(iv); } // 设置wel_viewPager的Adapter initAdapter(); } private void initAdapter() { pagerAdapter=new PagerAdapter() { @Override public int getCount() { return viewlist.size(); } @Override public boolean isViewFromObject(View view, Object o) { return view==o;// 官方提示这样写 } @Override public int getItemPosition(Object object) { return super.getItemPosition(object); } @Override public void destroyItem(ViewGroup container, int position, Object object) { container.removeView(viewlist.get(position)); } @Override public Object instantiateItem(ViewGroup container, int position) { container.addView(viewlist.get(position)); return viewlist.get(position); } }; wel_viewPager.setAdapter(pagerAdapter); /** * 在最后一页 判断左滑还是右滑 */ wel_viewPager.setOnTouchListener(new View.OnTouchListener() { @Override public boolean onTouch(View v, MotionEvent event) { if ((curpos == viewlist.size() - 1)) {// 是否是最后一页 switch (event.getAction()) { case MotionEvent.ACTION_DOWN: lastx = event.getX(); break; case MotionEvent.ACTION_MOVE: curx = event.getX(); if (lastx - curx > 100) { skipActivity(); } break; } } return false; } }); wel_viewPager.setOnPageChangeListener(new ViewPager.OnPageChangeListener() { @Override public void onPageSelected(int arg0) { // // 转移到下一个view时 原点移动到下一个位置 // if (arg0 < viewlist.size()) { // moveCurdot(arg0); // } curpos = arg0; } @Override public void onPageScrolled(int arg0, float arg1, int arg2) { } @Override public void onPageScrollStateChanged(int arg0) { } }); } private Handler handler = new Handler(); private boolean isEnd = false; private Runnable runnable = new Runnable() { @Override public void run() { if (!isEnd) { if (curpos < 2) { handler.postDelayed(this, 2000); curpos++; wel_viewPager.setCurrentItem(curpos); } else { skipActivity(); isEnd = true; } } } }; /** * 跳转到指定Activity */ private void skipActivity() { startActivity(null, MainActivity.class); preference.putBoolean(Preference.FIRST_IN, true); finishSimple(); }}
0 0
- android----------用ViewPage实现滑动效果
- 用ViewPage实现不同的滑动效果
- android viewpage 左右无限循环滑动效果实现!
- [android] 利用 ViewPage 实现滑动屏
- 【Android UI】Fragment+ViewPage实现滑动
- android实现ViewPage效果的TabActivity
- viewpage禁止滑动--android
- viewpage禁止滑动--android
- Android Viewpage禁止滑动
- viewpage禁止滑动--android
- ViewPage+Frament+listView滑动效果
- ViewPage 实现卡片效果
- android —— 自定义控件 利用 ViewPage 实现滑动屏
- viewpage 实现左右循环滑动
- viewpage实现的(带有小圆点效果的)滑动图片效果
- Android Viewpage禁止滑动屏幕
- Android viewpage滑动选项卡
- android 修改viewpage滑动速度
- Error of Git
- jQuery对象与DOM对象之间的转换方法
- js中的return
- Android引入即用的便捷开发框架WelikeAndroid
- pdb文件 小结
- android----------用ViewPage实现滑动效果
- phonegap介绍
- Java Nio 七、Java NIO Selector
- UINavigationController使用
- Mysql学习总结(11)——MySql存储过程与函数
- 几个常用dns
- 专家解析PostgreSQL数据库的三大痛点
- 《Java编程思想》学习笔记8——泛型编程高级
- <iOS>CocoaPods使用过程