tabhost通过手势滑动切换activity
来源:互联网 发布:java web教程 编辑:程序博客网 时间:2024/06/05 14:05
package com.mars.mp3player;import android.app.TabActivity;import android.content.Intent;import android.os.Bundle;import android.util.Log;import android.view.GestureDetector;import android.view.GestureDetector.SimpleOnGestureListener;import android.view.Menu;import android.view.MotionEvent;import android.view.View;import android.widget.TabHost;import android.widget.TabHost.TabSpec;public class ActivityMain extends TabActivity {private TabSpec tabSpec;private TabHost tabHost;private Intent intent;private static final int SWIPE_MIN_DISTANCE = 120;private static final int SWIPE_MAX_OFF_PATH = 250;private static final int SWIPE_THRESHOLD_VELOCITY = 200;private GestureDetector gestureDetector;View.OnTouchListener gestureListener;int currentView = 0;private static int maxTabIndex = 2;@Overridepublic void onCreate(Bundle savedInstanceState) {super.onCreate(savedInstanceState);super.setContentView(R.layout.activity_main);UtilVar.activities.add(ActivityMain.this);this.initTableHost();gestureDetector = new GestureDetector(new MyGestureDetector());gestureListener = new View.OnTouchListener() {public boolean onTouch(View v, MotionEvent event) {if (gestureDetector.onTouchEvent(event)) {return true;}return false;}};}/** * tablehost的初始化,代码完成 */private void initTableHost() {tabHost = super.getTabHost();// 歌曲列表intent = new Intent(ActivityMain.this, ActivityList.class);tabSpec = tabHost.newTabSpec("歌曲列表").setIndicator("歌曲列表",getResources().getDrawable(R.drawable.ic_launcher)).setContent(intent);tabHost.addTab(tabSpec);// 正在播放intent = new Intent(ActivityMain.this, ActivityPlaying.class);tabSpec = tabHost.newTabSpec("正在播放").setIndicator("正在播放",getResources().getDrawable(R.drawable.ic_launcher)).setContent(intent);tabHost.addTab(tabSpec);// 专辑列表intent = new Intent(ActivityMain.this, ActivityLyric.class);tabSpec = tabHost.newTabSpec("歌词显示").setIndicator("歌词显示",getResources().getDrawable(R.drawable.ic_launcher)).setContent(intent);tabHost.addTab(tabSpec);// 设置当前tabtabHost.setCurrentTab(1);}// 左右滑动刚好页面也有滑动效果class MyGestureDetector extends SimpleOnGestureListener {@Overridepublic boolean onFling(MotionEvent e1, MotionEvent e2, float velocityX,float velocityY) {TabHost tabHost = getTabHost();try {if (Math.abs(e1.getY() - e2.getY()) > SWIPE_MAX_OFF_PATH)return false;// right to left swipeif (e1.getX() - e2.getX() > SWIPE_MIN_DISTANCE&& Math.abs(velocityX) > SWIPE_THRESHOLD_VELOCITY) {Log.i("test", "right");if (currentView == maxTabIndex) {currentView = 0;} else {currentView++;}tabHost.setCurrentTab(currentView);} else if (e2.getX() - e1.getX() > SWIPE_MIN_DISTANCE&& Math.abs(velocityX) > SWIPE_THRESHOLD_VELOCITY) {Log.i("test", "left");if (currentView == 0) {currentView = maxTabIndex;} else {currentView--;}tabHost.setCurrentTab(currentView);}} catch (Exception e) {}return false;}}@Overridepublic boolean dispatchTouchEvent(MotionEvent event) {if (gestureDetector.onTouchEvent(event)) {event.setAction(MotionEvent.ACTION_CANCEL);}return super.dispatchTouchEvent(event);}@Overridepublic boolean onCreateOptionsMenu(Menu menu) {getMenuInflater().inflate(R.menu.activity_main, menu);return true;}}// 主要代码就这样吧,以后就不必到处找手势跳转activity的例子了。
0 0
- tabhost通过手势滑动切换activity
- tabhost activity 手势滑动
- TabHost多界面手势滑动切换
- Android 手势滑动切换activity
- 通过滑动手势切换Activity,并在切换过程中显示动画效果
- android手势操作&&实现滑动切换activity
- android: ViewPager滑动切换Activity,TabHost做标题
- Android TabHost 选项卡 滑动activity进行切换选项卡
- 滑动切换TabHost
- 通过手指滑动切换不同的Activity
- Activity滑动手势检测
- 手势滑动销毁Activity
- 手势滑动销毁Activity
- android 手势切换 activity
- tabhost使用viewflipper实现手势滑动分页
- 通过手势切换Fragment
- TabHost管理的activity 下 手势独立
- 添加手势,滑动切换网页
- unresolved external symbol __endthreadex错误解决
- 异步读取raw文件下大文件的内容
- MySQL简单学习
- 自定义View实现HTML图文环绕效果
- VideoView简单视频播放
- tabhost通过手势滑动切换activity
- ImageView翻转效果
- MongoDb Official Driver Get Collection Names
- 圆形菜单效果
- ParallaxScrollView有视差的ScrollView
- 四个方向上的SlidingDrawer
- Linux 定时器
- android音频、视频、拍照基础操作
- Postman使用手册3——环境变量