ViewFlipper手势滑动
2013-05-21 22:51
344 查看
View切换的控件—ViewFlipper
除了这个ViewFlipper,我们还需要了解一下ViewAnimator。它主要是为其中的View切换提供动画效果。
还会用到几个方法:
setInAnimation:设置View进入屏幕时候使用的动画。该方法有两个重载方法,即可以直接传入Animation对象,也可以传入定义的Animation文件的resourceID。
setOutAnimation:设置View退出屏幕时候使用的动画。使用方法和setInAnimation方法一样。
showNext:调用该方法可以显示FrameLayout里面的下一个View。
showPrevious:调用该方法可以来显示FrameLayout里面的上一个View。
除了这个ViewFlipper,我们还需要了解一下ViewAnimator。它主要是为其中的View切换提供动画效果。
还会用到几个方法:
setInAnimation:设置View进入屏幕时候使用的动画。该方法有两个重载方法,即可以直接传入Animation对象,也可以传入定义的Animation文件的resourceID。
setOutAnimation:设置View退出屏幕时候使用的动画。使用方法和setInAnimation方法一样。
showNext:调用该方法可以显示FrameLayout里面的下一个View。
showPrevious:调用该方法可以来显示FrameLayout里面的上一个View。
package com.example.viewfipper; import android.os.Bundle; import android.app.Activity; import android.view.GestureDetector; import android.view.GestureDetector.OnGestureListener; import android.view.LayoutInflater; import android.view.Menu; import android.view.MotionEvent; import android.view.View; import android.view.animation.AnimationUtils; import android.widget.ViewFlipper; public class MainActivity extends Activity implements OnGestureListener { private ViewFlipper viewflipper; private GestureDetector detector; @Override protected void onCreate(Bundle savedInstanceState) { super.onCreate(savedInstanceState); setContentView(R.layout.activity_main); viewflipper=(ViewFlipper)findViewById(R.id.viewflipper); detector=new GestureDetector(this); View testView1=LayoutInflater.from(this).inflate(R.layout.test, null); View testView2=LayoutInflater.from(this).inflate(R.layout.test2,null);
//将两个View添加到ViewFlipper中去
viewflipper.addView(testView1); viewflipper.addView(testView2); } @Override public boolean onCreateOptionsMenu(Menu menu) { // Inflate the menu; this adds items to the action bar if it is present. getMenuInflater().inflate(R.menu.main, menu); return true; } @Override public boolean onDown(MotionEvent e) { // TODO Auto-generated method stub return false; } @Override public boolean onFling(MotionEvent e1, MotionEvent e2, float velocityX, float velocityY) { // TODO Auto-generated method stub //向左滑动 if(e1.getX()-e2.getX()>120) {//添加滑动时的动画,有两种方法,另一种见向右滑动
viewflipper.setInAnimation(AnimationUtils.loadAnimation(MainActivity.this, R.anim.push_left_in));
viewflipper.setOutAnimation(AnimationUtils.loadAnimation(MainActivity.this, R.anim.push_left_out)); viewflipper.showNext();//显示下一个View return true; } if(e1.getX()-e2.getX()<-120) { viewflipper.setInAnimation(MainActivity.this,R.anim.push_right_in); viewflipper.setOutAnimation(MainActivity.this, R.anim.push_right_out); viewflipper.showPrevious();//显示前一个view return true; } return true; } @Override public void onLongPress(MotionEvent e) { // TODO Auto-generated method stub } @Override public boolean onScroll(MotionEvent e1, MotionEvent e2, float distanceX, float distanceY) { // TODO Auto-generated method stub return false; } @Override public void onShowPress(MotionEvent e) { // TODO Auto-generated method stub } @Override public boolean onSingleTapUp(MotionEvent e) { // TODO Auto-generated method stub return false; } @Override public boolean onTouchEvent(MotionEvent event) { // TODO Auto-generated method stub return this.detector.onTouchEvent(event); } }注意:一定要重写onTouchEvent()方法,不然无法实现
相关文章推荐
- Android开发之ViewFlipper应用(二)之手势滑动相册
- Android使用ViewFlipper做页面切换,与手势滑动切换的使用。
- 5.14支持手势滑动的ViewFlipper
- ViewFlipper结合手势OnGestureListener制作的滑动切换效果
- ViewFlipper实现手势滑动
- 使用ViewFlipper实现图片自动切换,并支持手势滑动切换
- Android_ViewFlipper手势滑动
- Android开发之ViewFlipper应用(二)之手势滑动相册
- ViewFlipper手势滑动改变标题和AsyncTask模拟的滑动菜单 ..
- 关于使用ViewFlipper实现手势滑动切换及其与ScrollView冲突的解决办法
- 手势检测实现相册的左右滑动(并加上移动与旋转的特效) 首先,activity_main.xml里,使用ViewFlipper组件(可使用动画控制多个组件之间的切换效果) <?xml version="
- Android利用ViewFlipper实现随手势滑动视图间切换
- Android_ViewFlipper_手势滑动
- 2015.1.6,第三节课Android控件ViewFlipper手势滑动效果
- Android使用ViewFlipper做页面切换,与手势滑动切换的使用
- 关于ViewFlipper中GridView手势滑动滑的实现
- Android使用ViewFlipper做页面切换,与手势滑动切换的使用
- Android UI开发第八篇——ViewFlipper 左右滑动效果
- ViewPager与ViewFlipper实现图片导航的左右滑动
- Android 滑动效果入门篇(一)—— ViewFlipper