Android_ViewFlipper_手势滑动
2013-04-02 09:47
519 查看
最近看了想实现滑动屏效果,找了资料,看到ViewFlipper可以实现。便找了些资料练习了一下,发现挺简单的。
1、先说下布局文件吧。
3、效果如图:
1、先说下布局文件吧。
<?xml version="1.0" encoding="utf-8"?> <LinearLayout xmlns:android="http://schemas.android.com/apk/res/android" android:background="@drawable/white" android:orientation="vertical" android:layout_width="fill_parent" android:layout_height="fill_parent" > <TextView android:id="@+id/myTextView0" android:layout_width="fill_parent" android:layout_height="wrap_content" android:textColor="@drawable/black" android:gravity="center_vertical|center_horizontal" android:text="@string/hello"/> <ViewFlipper android:id="@+id/myViewFlipper1" android:layout_width="fill_parent" android:layout_height="fill_parent"> <LinearLayout android:orientation="vertical" android:layout_width="fill_parent" android:layout_height="fill_parent" android:background="@drawable/white"> <TextView android:id="@+id/myTextView1" android:layout_width="fill_parent" android:layout_height="wrap_content" android:textColor="@drawable/blue" android:text="@string/str_view_flipper1"/> <ImageView android:id="@+id/myImageView1" android:layout_width="wrap_content" android:layout_height="wrap_content" android:src="@drawable/visa_512" /> </LinearLayout> <LinearLayout android:orientation="vertical" android:layout_width="fill_parent" android:layout_height="fill_parent" android:background="@drawable/white"> <TextView android:id="@+id/myTextView2" android:layout_width="fill_parent" android:layout_height="wrap_content" android:textColor="@drawable/blue" android:text="@string/str_view_flipper2"/> <ImageView android:id="@+id/myImageView1" android:layout_width="wrap_content" android:layout_height="wrap_content" android:src="@drawable/mastercard_512" /> </LinearLayout> </ViewFlipper> </LinearLayout>2、主Activity为:
package irdc.ex03_27; import android.app.Activity; import android.os.Bundle; import android.view.MotionEvent; import android.view.Window; import android.view.WindowManager; import android.widget.ViewFlipper; public class EX03_27 extends Activity { public static String TAG = "HIPPO_DEBUG"; private ViewFlipper mViewFlipper01; private float oldTouchValue; //private ImageView mImageView01; /** Called when the activity is first created. */ @Override public void onCreate(Bundle savedInstanceState) { super.onCreate(savedInstanceState); getWindow().setFlags ( WindowManager.LayoutParams.FLAG_FULLSCREEN, WindowManager.LayoutParams.FLAG_FULLSCREEN ); requestWindowFeature(Window.FEATURE_NO_TITLE); setContentView(R.layout.main); mViewFlipper01 = (ViewFlipper)findViewById(R.id.myViewFlipper1); /*扩展学习 mImageView01 = (ImageView)findViewById(R.id.myImageView1); // 建立动画TranslateAnimation Animation anim = new TranslateAnimation( 10, 200, 10, 400 ); // 动画开始到结束的执行时间 (2000 = 2 秒) anim.setDuration(2000); // 设定动画重复次数,-1表示不断重复 anim.setRepeatCount(-1); // 设定ImageView动画效果 mImageView01.setAnimation(anim); // 动画开始 anim.startNow(); */ } @Override public boolean onTouchEvent(MotionEvent event) { // TODO Auto-generated method stub switch (event.getAction()) { case MotionEvent.ACTION_DOWN: oldTouchValue = event.getX(); break; case MotionEvent.ACTION_UP: float currentX = event.getX(); if (oldTouchValue < currentX)//手指向右滑动 { mViewFlipper01.setInAnimation(AnimationHelper.inFromLeftAnimation()); mViewFlipper01.setOutAnimation(AnimationHelper.outToRightAnimation()); mViewFlipper01.showNext(); } if (oldTouchValue > currentX)//手指向左滑动 { mViewFlipper01.setInAnimation(AnimationHelper.inFromRightAnimation()); mViewFlipper01.setOutAnimation(AnimationHelper.outToLeftAnimation()); mViewFlipper01.showPrevious(); } break; case MotionEvent.ACTION_MOVE: // TODO: Some code to make the ViewFlipper // act like the home screen. break; } return super.onTouchEvent(event); } }3、动画Animation类为:
package irdc.ex03_27; import android.view.animation.AccelerateInterpolator; import android.view.animation.Animation; import android.view.animation.TranslateAnimation; public class AnimationHelper { public static Animation inFromRightAnimation()//由右向左滑动的Set In事件 { Animation inFromRight = new TranslateAnimation( Animation.RELATIVE_TO_PARENT, +1.0f, Animation.RELATIVE_TO_PARENT, 0.0f, Animation.RELATIVE_TO_PARENT, 0.0f, Animation.RELATIVE_TO_PARENT, 0.0f); inFromRight.setDuration(350); inFromRight.setInterpolator(new AccelerateInterpolator()); return inFromRight; } public static Animation outToLeftAnimation()//由右向左滑动的Set Out事件 { Animation outtoLeft = new TranslateAnimation(Animation.RELATIVE_TO_PARENT, 0.0f, Animation.RELATIVE_TO_PARENT, -1.0f, Animation.RELATIVE_TO_PARENT, 0.0f, Animation.RELATIVE_TO_PARENT, 0.0f); outtoLeft.setDuration(350); outtoLeft.setInterpolator(new AccelerateInterpolator()); return outtoLeft; } // for the next movement public static Animation inFromLeftAnimation()//由左向右滑动的Set In事件 { Animation inFromLeft = new TranslateAnimation(Animation.RELATIVE_TO_PARENT, -1.0f, Animation.RELATIVE_TO_PARENT, 0.0f, Animation.RELATIVE_TO_PARENT, 0.0f, Animation.RELATIVE_TO_PARENT, 0.0f); inFromLeft.setDuration(350); inFromLeft.setInterpolator(new AccelerateInterpolator()); return inFromLeft; } public static Animation outToRightAnimation()//由左向右滑动的Set Out事件 { Animation outtoRight = new TranslateAnimation(Animation.RELATIVE_TO_PARENT, 0.0f, Animation.RELATIVE_TO_PARENT, +1.0f, Animation.RELATIVE_TO_PARENT, 0.0f, Animation.RELATIVE_TO_PARENT, 0.0f); outtoRight.setDuration(350); outtoRight.setInterpolator(new AccelerateInterpolator()); return outtoRight; } }
3、效果如图:
相关文章推荐
- Android利用ViewFlipper实现随手势滑动视图间切换
- 2015.1.6,第三节课Android控件ViewFlipper手势滑动效果
- Android_ViewFlipper手势滑动
- Android使用ViewFlipper做页面切换,与手势滑动切换的使用
- Android开发之ViewFlipper应用(二)之手势滑动相册
- Android使用ViewFlipper做页面切换,与手势滑动切换的使用。
- Android使用ViewFlipper做页面切换,与手势滑动切换的使用
- Android开发之ViewFlipper应用(二)之手势滑动相册
- 【Android】滑动屏幕效果GestureDetector、OnGestureListener、ViewFlipper
- android 自定义ImageView实现图片手势滑动,多点触摸放大缩小效果
- Android 滑动效果入门篇(一)—— ViewFlipper
- Android系列之实现ViewFlipper图片动画滑动
- Android ViewFlipper的使用(手势滑屏)
- Android 滑动效果入门篇(一)—— ViewFlipper
- Android----ViewFlipper页面滑动基础
- android 自定义ImageView实现图片手势滑动,多点触摸放大缩小效果
- android ViewPager,ViewFlipper,ViewFlow实现左右滑动
- Android 滑动效果入门篇(一)—— ViewFlipper
- android滑动组件嵌套一般思路,多任务手势思路,触摸传递思路,【例】listview嵌套viewpager
- Android ViewFlipper实现多个布局手势切换的效果