关于界面随着手指滑动的实现
来源:互联网 发布:阿里云虚拟机上传 编辑:程序博客网 时间:2024/04/29 04:43
介绍一个很简单就能实现该功能的方法:
使用android-support-v4这个第三方包,它已经实现了该功能,下面介绍如何使用它:
1、在布局文件中加入如下代码:
<android.support.v4.view.ViewPager xmlns:android="http://schemas.android.com/apk/res/android"android:id="@+id/myMesPager" android:layout_width="fill_parent"android:layout_height="fill_parent" android:layout_margin="0.0dip"android:layout_gravity="center" android:persistentDrawingCache="animation"android:flipInterval="30" />
2、实现PageAdapter
public class MyPagerAdapter extends PagerAdapter {private static final String TAG = "PicViewActivity"; public List<View> mListViews; public MyPagerAdapter(List<View> mListViews) { this.mListViews = mListViews; } @Override public void destroyItem(View arg0, int arg1, Object arg2) { Log.d(TAG, "destroyItem"); ((ViewPager) arg0).removeView(mListViews.get(arg1)); } @Override public void finishUpdate(View arg0) { Log.d(TAG, "finishUpdate"); } @Override public int getCount() { Log.d(TAG, "getCount"); return mListViews.size(); } @Override public Object instantiateItem(View arg0, int arg1) { Log.d(TAG, "instantiateItem"); ((ViewPager) arg0).addView(mListViews.get(arg1), 0); return mListViews.get(arg1); } @Override public boolean isViewFromObject(View arg0, Object arg1) { Log.d(TAG, "isViewFromObject"); return arg0 == (arg1); } @Override public void restoreState(Parcelable arg0, ClassLoader arg1) { Log.d(TAG, "restoreState"); } @Override public Parcelable saveState() { Log.d(TAG, "saveState"); return null; } @Override public void startUpdate(View arg0) { Log.d(TAG, "startUpdate"); }}3、实现页面功能
ArrayList<View> listViews = new ArrayList<View>();for(int i=0;i<max;i++){//在List中加入您需要显示的View,每个View就是一个界面//listViews.add(new View());}MyPageAdapter myAdapter = new MyPagerAdapter(listViews);ViewPage myViewPager = (ViewPager) findViewById(R.id.myMesPager);myViewPager.setAdapter(myAdapter);myViewPager.setCurrentItem(0);界面滑动时的相关方法
myViewPager.setOnPageChangeListener(new OnPageChangeListener() {@Overridepublic void onPageSelected(int arg0) {//从1到2滑动,2被加载后调用}@Overridepublic void onPageScrolled(int arg0, float arg1, int arg2) {// 从1到2滑动,在1滑动前调用}@Overridepublic void onPageScrollStateChanged(int arg0) {// 状态有三个0空闲,1是正在滑行中,2目标加载完毕}});
效果如下
- 关于界面随着手指滑动的实现
- 随着手指滑动动态改变子控件位置、透明度、大小的实现方式
- ios上tableview的区域随着手指滑动而动态改变
- ViewPager手指滑动转换界面
- 单手指滑动实现旋转
- 在unity中实现方向盘UI的随着触摸转动和手指离开复位功能
- 在unity中实现方向盘UI的随着触摸转动和手指离开复位功能
- 用Activity的onTouchEvent方法实现监听手指上下左右滑动
- 用Activity的onTouchEvent方法实现监听手指上下左右滑动
- 用Activity的onTouchEvent方法实现监听手指上下左右滑动
- 实现手指滑动切换视图的自定义布局类ScrollLayout
- 用Activity的onTouchEvent方法实现监听手指上下左右滑动
- 用Activity的onTouchEvent方法实现监听手指上下左右滑动
- 用Activity的onTouchEvent方法实现监听手指上下左右滑动
- 用Activity的onTouchEvent方法实现监听手指上下左右滑动
- Activity的onTouchEvent方法实现监听手指上下左右滑动
- 实现背景颜色随着ScrollView滑动改变的ActionBar
- 随着RecycleView的滑动实现标题栏透明度渐变:
- asp.net 浅谈 异步无刷新的操作
- SecureCRT连虚拟机上的linux配置信息
- 灰鸽子分析报告
- 深入理解MFC子类化
- Build a NX Open .NET application
- 关于界面随着手指滑动的实现
- 收藏的链接
- Struts2-编写自己的验证器
- 好好学一遍JavaScript 笔记(十)——IE跟DOM事件函数区别
- 【PB】怎样得到字符串中汉字的个数?
- 用API实现遍历文件目录(续)
- 从产品看产品设计---定位
- ConvertBST2DoubleList
- HTML5学习笔记(一)——简介及约定