1500字范文,内容丰富有趣,写作好帮手!
1500字范文 > Android ViewFlipper实现多个布局手势切换的效果

Android ViewFlipper实现多个布局手势切换的效果

时间:2021-08-10 18:55:07

相关推荐

Android ViewFlipper实现多个布局手势切换的效果

这里用到了前面学过的 手势效果,如果对手势还是不很了解的话可以去看一下这篇文章 Android使用GestureDetector实现手势滑动效果 先看一下布局文件 activity_main.xml

<RelativeLayout xmlns:android="/apk/res/android"xmlns:tools="/tools"android:layout_width="match_parent"android:layout_height="match_parent"tools:context=".MainActivity" ><ViewFlipperandroid:id="@+id/viewFlipper1"android:layout_width="match_parent"android:layout_height="match_parent"android:layout_centerVertical="true" ><LinearLayoutandroid:layout_width="match_parent"android:layout_height="match_parent"android:background="#ff000000"android:orientation="vertical" ></LinearLayout><LinearLayoutandroid:layout_width="match_parent"android:layout_height="match_parent"android:background="#ffcccccc"android:orientation="vertical" ></LinearLayout><LinearLayoutandroid:layout_width="match_parent"android:layout_height="match_parent"android:background="#ffff6600"android:orientation="vertical" ></LinearLayout></ViewFlipper></RelativeLayout>

布局文件很简单,在ViewFlipper中包含了三个布局,全部用背景颜色区分。 再看一下MainActivity.java

package com.example.viewflipper;import android.os.Bundle;import android.app.Activity;import android.view.GestureDetector;import android.view.GestureDetector.OnGestureListener;import android.view.Menu;import android.view.MotionEvent;import android.widget.Toast;import android.widget.ViewFlipper;public class MainActivity extends Activity implements OnGestureListener {private GestureDetector mGestureDetector;private ViewFlipper mViewFlipper = null;@Overrideprotected void onCreate(Bundle savedInstanceState) {super.onCreate(savedInstanceState);setContentView(R.layout.activity_main);mGestureDetector = new GestureDetector(this, this);mViewFlipper = (ViewFlipper) findViewById(R.id.viewFlipper1);}@Overridepublic boolean onTouchEvent(MotionEvent event) {// TODO Auto-generated method stubmGestureDetector.onTouchEvent(event);return super.onTouchEvent(event);}@Overridepublic boolean onDown(MotionEvent arg0) {// TODO Auto-generated method stub// Toast.makeText(this, "onDown", Toast.LENGTH_SHORT).show();return false;}@Overridepublic boolean onFling(MotionEvent startEvent, MotionEvent endEvent,float velocityX, float velocityY) {// TODO Auto-generated method stubif (startEvent.getY() - endEvent.getY() > 100) {Toast.makeText(this, "手势向上滑动", Toast.LENGTH_SHORT).show();return true;} else if (startEvent.getY() - endEvent.getY() < -100) {Toast.makeText(this, "手势向下滑动", Toast.LENGTH_SHORT).show();return true;} else if (startEvent.getX() - endEvent.getX() > 100) {Toast.makeText(this, "手势向左滑动", Toast.LENGTH_SHORT).show();mViewFlipper.showNext();return true;} else if (startEvent.getX() - endEvent.getX() < -100) {Toast.makeText(this, "手势向右滑动", Toast.LENGTH_SHORT).show();mViewFlipper.showPrevious();return true;}return false;}@Overridepublic void onLongPress(MotionEvent arg0) {// TODO Auto-generated method stub// Toast.makeText(this, "onLongPress ", Toast.LENGTH_SHORT).show();}@Overridepublic boolean onScroll(MotionEvent arg0, MotionEvent arg1, float arg2,float arg3) {// TODO Auto-generated method stub// Toast.makeText(this, "onScroll", Toast.LENGTH_SHORT).show();return false;}@Overridepublic void onShowPress(MotionEvent arg0) {// TODO Auto-generated method stub// Toast.makeText(this, "onShowPress", Toast.LENGTH_SHORT).show();}@Overridepublic boolean onSingleTapUp(MotionEvent arg0) {// TODO Auto-generated method stub// Toast.makeText(this, "onSingleTapUp", Toast.LENGTH_SHORT).show();return false;}@Overridepublic boolean onCreateOptionsMenu(Menu menu) {// Inflate the menu; this adds items to the action bar if it is present.getMenuInflater().inflate(R.menu.activity_main, menu);return true;}}

这样就可以实现最简单的切换效果了。

本内容不代表本网观点和政治立场,如有侵犯你的权益请联系我们处理。
网友评论
网友评论仅供其表达个人看法,并不表明网站立场。