下面的代码片段详细说明了如何实现滑动翻页。
复制代码 代码如下:
public class ViewFlipperActivity extends Activity implements OnGestureListener {
private static final int FLING_MIN_DISTANCE = 100;
private ViewFlipper flipper;
private GestureDetector detector;
@Override
protected void onCreate(Bundle savedInstanceState) {
superonCreate(savedInstanceState);
setContentView(Rlayoutviewflipper);
// 注册一个GestureDetector
detector = new GestureDetector(this);
flipper = (ViewFlipper) findViewById(RidViewFlipper);
ImageView image1 = new ImageView(this);
image1setBackgroundResource(Rdrawableimage1);
// 增加第一个view
flipperaddView(image1);
ImageView image2 = new ImageView(this);
image2setBackgroundResource(Rdrawableimage2);
// 增加第二个view
flipperaddView(image2);
}
@Override
public boolean onTouchEvent(MotionEvent event) {
// 将触屏事件交给手势识别类处理
return thisdetectoronTouchEvent(event);
}
@Override
public boolean onDown(MotionEvent e) {
return false;
}
@Override
public void onShowPress(MotionEvent e) {
}
@Override
public boolean onSingleTapUp(MotionEvent e) {
return false;
}
@Override
public boolean onScroll(MotionEvent e1, MotionEvent e2, float distanceX,
float distanceY) {
return false;
}
@Override
public void onLongPress(MotionEvent e) {
}
@Override
public boolean onFling(MotionEvent e1, MotionEvent e2, float velocityX,
float velocityY) {
if (e1getX() - e2getX() > FLING_MIN_DISTANCE) {
//设置View进入和退出的动画效果
thisflippersetInAnimation(AnimationUtilsloadAnimation(this,
Ranimleft_in));
thisflippersetOutAnimation(AnimationUtilsloadAnimation(this,
Ranimleft_out));
thisflippershowNext();
return true;
}
if (e1getX() - e2getX() < -FLING_MIN_DISTANCE) {
thisflippersetInAnimation(AnimationUtilsloadAnimation(this,
Ranimright_in));
thisflippersetOutAnimation(AnimationUtilsloadAnimation(this,
Ranimright_out));
thisflippershowPrevious();
return true;
}
return false;
}
}
在这段代码里,创建了两个IamgeView(用来显示),加入到了ViewFlipper中。程序运行后,当用手指在屏幕上向左滑动,会显示前一个,用手指在屏幕上向右滑动,会显示下一个。实现滑动切换的主要代码都在onFling()方法中,用户按下触摸屏,快速移动后松开,就会触发这个事件。在这段代码示例中,对手指滑动的距离进行了计算,如果滑动距离大于100像素,就做切换动作,否则不做任何切换动作。
楼上楼下全是扯淡回答。。。大文本的情况下全部颠覆。。。网上没有一个真正实用有效的阅读器代码。首先,文本分页,U以为想分就分啊?文本多,分了半分钟没分完,用户缩放文本,是从头分页还是从这里分页?从当前位置分页,那往前分页呢?而且,一页的字数,不是定多少就真的那么多:100个换行符和普通字符能一样占一个页面?问题多着呢。
知乎Android版翻页
翻页,查看分页文件的上一个页面、下一个页面或任意存在的非当前页面。可以将实体书或者移动Web窗体中的内容进行改变,以观看不同内容。在互联网上运用时该机制还呈现可用于浏览到其他页的用户界面元素。
作用
翻页:跳转到上一个页面、下一个页面或任意存在的非当前页面。
Android上有一个控件叫做ViewPager,该控件可以根据item的多少实现左右滑动的效果。
Android上还有一个东西叫做Fragment,这是一个依赖于Activity而又独立的页面。
综合这两个控件的特性,可以使用ViewPager+Fragment的方式,即在ViewPager里嵌入Fragment的方式,实现页面左右滑动的效果。
项目地址: https://githubcom/PeachBlossom/treader
分享下之前写的小说阅读器,项目结构是传统mvc这样来做,欢迎大家star。
如风小说阅读器,添加书签、目录跳转、(仿真、覆盖、滑动、无)翻页动画效果、日夜间模式、字体/字体大小/主题/亮度设置、本地txt书籍阅读(支持大文件)
欢迎分享,转载请注明来源:品搜搜测评网