Android 实现拖动效果

tankeryang 贡献于2015-05-13

作者   创建于2012-06-06 01:30:27   修改者  修改于2013-09-04 05:57:03字数2272

文档摘要:Android 实现拖动效果
关键词:

本文由www.microoh.com整理,转载请注明出处 [android]实现拖动效果 要实现拖动效果需要做以下的准备。 1.创建一个Android工程。 2.在main.xml中添加一个ViewFlipper组件。 在代码中设置ViewFlipper的事件和属性 Java代码 1 viewFlipper=(ViewFlipper)findViewById(R.id.ViewFlipper01);//得到对象 2 viewFlipper.setLongClickable(true);//如果不设置为true,对象就不会响应onTouch事件 3 viewFlipper.setOnTouchListener(newView.OnTouchListener(){ 4 @Override 5 publicbooleanonTouch(Viewv,MotionEventevent){ 6 //gd是一个GestureDetector对象。具体的会在下面讲到。GestureDetector会根据转入的MotionEvent事件来判断用户进行了哪种操作。 7 ActivityMain.this.gd.onTouchEvent(event); 8 returnfalse; 9 } 10 }); 11 3.添加一个GestureDetector对象。并实现GestureDetector.OnGestureListener接口。 12 GestureDetector对象对接收多个MotionEvent事件。并根据这些MotionEvent事件来判断用户在进行什么操作。 13 @Override 14 publicbooleanonSingleTapUp(MotionEvente){ 15 //用户轻触屏幕后松开。 16 returnfalse; 17 } 18 19 @Override 20 publicvoidonShowPress(MotionEvente){ 21 //用户轻触屏幕,尚末松开或拖动,注意,强调的是没有没有松开或者拖动状态 22 } 23 24 @Override 25 publicbooleanonScroll(MotionEvente1,MotionEvente2,floatdistanceX, 26 floatdistanceY){ 27 //用户按下屏幕并拖动 28 returnfalse; 29 } 30 31 @Override 本文由www.microoh.com整理,转载请注明出处 32 publicvoidonLongPress(MotionEvente){ 33 //用户长按屏幕 34 } 35 36 @Override 37 publicbooleanonFling(MotionEvente1,MotionEvente2,floatvelocityX, 38 floatvelocityY){ 39 //用户按下屏幕,快速移动后松开(就是在屏幕上滑动) 40 //e1:第一个ACTION_DOWN事件(手指按下的那一点) 41 //e2:最后一个ACTION_MOVE事件(手指松开的那一点) 42 //velocityX:手指在x轴移动的速度单位:像素/秒 43 //velocityY:手指在y轴移动的速度单位:像素/秒 44 if(e1.getX()-e2.getX()>0){//判断用户是在向什么方向移动手指 45 ActivityMain.this.nextPage();//向左移动手指,显示下一页 46 }else{ 47 ActivityMain.this.prePage();//向右移动手指,显示上一页 48 } 49 returnfalse; 50 } 51 52 @Override 53 publicbooleanonDown(MotionEvente){ 54 //用户轻触屏幕。(单击) 55 returnfalse; 56 } 57 4.实现翻页程序 58 privatevoidprePage(){ 59 if(i<=0){ 60 i=0; 61 Toast.makeText(this,"前面没有页面了",Toast.LENGTH_SHORT).show(); 62 return; 63 } 64 i--; 65 viewFlipper.setInAnimation(this,R.anim.in_left_anima); 66 viewFlipper.setOutAnimation(this,R.anim.out_right_anima); 67 viewFlipper.showPrevious(); 68 } 69 privatevoidnextPage(){ 70 if(i+1>=max){ 71 i=max-1; 72 Toast.makeText(this,"这是最后一页",Toast.LENGTH_SHORT).show(); 73 return; 74 } 75 viewFlipper.setInAnimation(this,R.anim.in_right_anima); 本文由www.microoh.com整理,转载请注明出处 76 viewFlipper.setOutAnimation(this,R.anim.out_left_anima); 77 i++; 78 intcount=viewFlipper.getChildCount(); 79 if(count=count){ 80 viewFlipper.addView(getTextView(i)); 81 } 82 viewFlipper.showNext(); 83 }

下载文档到电脑,查找使用更方便

文档的实际排版效果,会与网站的显示效果略有不同!!

需要 2 金币 [ 分享文档获得金币 ] 0 人已下载

下载文档