- 浏览: 5776968 次
- 性别:
- 来自: 上海
文章分类
- 全部博客 (890)
- WindowsPhone (0)
- android (88)
- android快速迭代 (17)
- android基础 (34)
- android进阶 (172)
- android高级 (0)
- android拾遗 (85)
- android动画&效果 (68)
- Material Design (13)
- LUA (5)
- j2me (32)
- jQuery (39)
- spring (26)
- hibernate (20)
- struts (26)
- tomcat (9)
- javascript+css+html (62)
- jsp+servlet+javabean (14)
- java (37)
- velocity+FCKeditor (13)
- linux+批处理 (9)
- mysql (19)
- MyEclipse (9)
- ajax (7)
- wap (8)
- j2ee+apache (24)
- 其他 (13)
- phonegap (35)
最新评论
-
Memories_NC:
本地lua脚本终于执行成功了,虽然不是通过redis
java中调用lua脚本语言1 -
ZHOU452840622:
大神://处理返回的接收状态 这个好像没有监听到 遇 ...
android 发送短信的两种方式 -
PXY:
拦截部分地址,怎么写的for(int i=0;i<lis ...
判断是否登录的拦截器SessionFilter -
maotou1988:
Android控件之带清空按钮(功能)的AutoComplet ...
自定义AutoCompleteTextView -
yangmaolinpl:
希望有表例子更好。。。,不过也看明白了。
浅谈onInterceptTouchEvent、onTouchEvent与onTouch
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; @Override public 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); // 设置当前tab tabHost.setCurrentTab(1); } // 左右滑动刚好页面也有滑动效果 class MyGestureDetector extends SimpleOnGestureListener { @Override public 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 swipe if (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; } } @Override public boolean dispatchTouchEvent(MotionEvent event) { if (gestureDetector.onTouchEvent(event)) { event.setAction(MotionEvent.ACTION_CANCEL); } return super.dispatchTouchEvent(event); } @Override public boolean onCreateOptionsMenu(Menu menu) { getMenuInflater().inflate(R.menu.activity_main, menu); return true; } } // 主要代码就这样吧,以后就不必到处找手势跳转activity的例子了。
发表评论
-
利用广播实现强制下线功能
2016-12-28 10:45 1423最近一口气买 ... -
Android百分比布局Percent支持库
2015-09-02 11:08 3104虽然有很多的布局可以在 Android 应用程序开发的世界供我 ... -
ViewDragHelper行为测试
2015-08-12 17:36 2694只是简单记录一下 以后可能会实现一些效果 import ... -
android5.x之Palette调色板
2015-07-17 10:30 3295Palette类可以分析一张图片,取出这张图片的特征色,然后为 ... -
使用ClipboardManager剪贴板实现复制粘贴功能
2015-04-10 14:39 3737经常要使用复制粘贴的功能,比如长安一个TextView弹出一个 ... -
LocationListener监听位置变化,当进入到某一距离内时发出提醒
2014-08-19 15:03 7631项目中需要这样的要求: 启动一个服务一直在背后监听当前位置变化 ... -
Android下集成FacebookSDk到项目并发表评论
2013-08-28 14:36 4832项目中需要发表自己的评论到Facebook,需要集成Faceb ... -
MediaRecorder录音,MediaPlayer播放
2013-05-23 09:53 7471直接看代码 import java.io.DataOutp ... -
Notification的基本用法
2013-05-22 11:52 5916android4.0以前: private static ... -
android音频、视频、拍照基础操作
2013-03-27 11:55 2767播放音乐和视频用的是类:MediaPlayer 刻录声音和视 ... -
VideoView简单视频播放
2013-02-17 17:17 9245只是上上手而已的例子。 package com.chen ... -
android 再按一次后退键退出应用程序
2012-06-15 21:51 4064private static Boolean isExit ... -
AlarmManager全局定时器/闹钟
2012-02-01 10:11 5823http://407827531.iteye.com/blog ... -
倒计时的CountDownTimer
2011-12-23 13:06 31146直接看这里吧,我只是搬运工。 定时执行在一段时候后停止的倒计 ... -
Android流量统计TrafficStats类的使用
2011-12-06 16:25 26393对于Android流量统计来说在2.2版中新加入了Traffi ... -
ScrollView当显示超出当前页面时自动移动到最底端
2011-09-01 09:42 16952卷轴视图(ScrollView)是指当拥有很多内容,一屏显示不 ... -
在SurfaceView上拖动一架飞机
2011-08-23 12:40 2880接上一篇在SurfaceView上拖动一张小图片 什么叫拖动飞 ... -
在SurfaceView上拖动一张小图片
2011-08-22 18:20 5192用手指随便拖。这里采用了线程去绘制,其实也可以在onTouch ... -
用getIdentifier()获取资源Id
2011-07-28 22:36 10723做项目过程中遇到一个问题,从数据库里读取图片名称,然后调用图片 ... -
利用VelocityTracker监控对触摸的速度跟踪
2011-07-28 22:12 10017VelocityTracker就是速度跟踪的意思。我们可以获得 ...
相关推荐
tabhost+view结合使用的demo,手势滑动、选项卡的同时实现,代码清晰,注解详细,因为太懒,用的是sdk自带的那个图片,大家到时候直接换掉图片就ok了^_^
简单的例子 能够运行流畅 是想手机一样的 通过手指左右滑动切换tabhost
继承TabActivity实现底部导航功能,自定义导航栏样式,可以滑动切换选项卡
Android可以点击切换和滑动切换的tabhost
自定义TabHost放在Activity底部,实现多个Activity的切换!
1.利用tabHost加ViewPager实现滑动的切换选项卡 2.有详细的注释,可自行修改界面风格 3.项目基于2.2开发,可兼容所有手机
完整的实现了通过手势控制tabhost里面活动的切换 对于刚刚学习android的人来说可以算是不错的资源 欢迎交流
解决tabhost子activity不响应OnActivityResult()函数
TabHost内实现多个Activity的跳转
1:解决了tabhost 位于底部的问题; 2:解决了tabhost 一个tab页中多个activity的跳转及返回问题。
项目需求,需要做一个TabHost,而且菜单是在下栏的,并且实现左右滑动切换Activity,而且下栏跟着改变到对应的栏目的,我便做了一个demo,这个demo的功能很完美,固上传上来给有需要的朋友。
TabHost+ViewPager实现滑动tabhost, viewPager;tabhost;滑动;源码
自定义Android中TabHost组件显示在屏幕底部,并实现滑动切换页面。在此基础上可以实现类似米聊等软件主界面的Tab效果。
选项卡切换效果,内容滑动切换。两个简单小例子仅供大家学习参考用。
简单的android选项卡Tab菜单TabHost(一)同一Activity上实现
TabHostActivity在API 13之后就不能用了。 写了个Demo,用FragmentActivity + Tabhost实现多标签页,并添加滑动手势。 API=19,可运行
在Android下实现的tabhost的滑动翻页的效果。
android实现tabhost并且tab内容是listview,没有view可以左右滑动。
利用Tabhost + Fragment实现android标签切换界面.
可以滑动的TabHost 基于ViewPaget实现 可能需要导入包,在libs中