package com.caigang.test;
import android.app.TabActivity;
import android.content.Intent;
import android.os.Bundle;
import android.view.GestureDetector;
import android.view.GestureDetector.OnGestureListener;
import android.view.LayoutInflater;
import android.view.MotionEvent;
import android.view.View;
import android.widget.FrameLayout;
import android.widget.ImageView;
import android.widget.TabHost;
import android.widget.TabHost.OnTabChangeListener;
import android.widget.TabWidget;
public class MainActivity extends TabActivity implements OnTabChangeListener,OnGestureListener {
private GestureDetector gestureDetector;
private FrameLayout frameLayout;
private CustomTabHost tabHost;
private TabWidget tabWidget;
private static final int FLEEP_DISTANCE = 120;
/** 记录当前分页ID */
private int currentTabID = 0;
@Override
protected void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
setContentView(R.layout.main);
tabHost = (CustomTabHost) findViewById(android.R.id.tabhost);
tabWidget = (TabWidget) findViewById(android.R.id.tabs);
tabHost.setOnTabChangedListener(this);
init();
gestureDetector = new GestureDetector(this);
new View.OnTouchListener() {
public boolean onTouch(View v, MotionEvent event) {
if (gestureDetector.onTouchEvent(event)) {
return true;
}
return false;
}
};
frameLayout = tabHost.getTabContentView();
}
private void init() {
setIndicator(R.drawable.icon1, 0, new Intent(this,TabActivity01.class));
setIndicator(R.drawable.icon2, 1, new Intent(this,TabActivity02.class));
setIndicator(R.drawable.icon3, 2, new Intent(this,TabActivity03.class));
setIndicator(R.drawable.icon4, 3, new Intent(this,TabActivity04.class));
}
private void setIndicator(int icon, int tabId, Intent intent) {
View localView = LayoutInflater.from(this.tabHost.getContext()).inflate(R.layout.tab, null);
((ImageView) localView.findViewById(R.id.tab_image)).setBackgroundResource(icon);
String str = String.valueOf(tabId);
TabHost.TabSpec localTabSpec = tabHost.newTabSpec(str).setIndicator(localView).setContent(intent);
tabHost.addTab(localTabSpec);
}
@Override
public void onTabChanged(String tabId) {
//tabId值为要切换到的tab页的索引位置
int tabID = Integer.valueOf(tabId);
for (int i = 0; i < tabWidget.getChildCount(); i++) {
if (i == tabID) {
tabWidget.getChildAt(Integer.valueOf(i)).setBackgroundColor(R.color.bule);
} else {
tabWidget.getChildAt(Integer.valueOf(i)).setBackgroundColor(R.color.white);
}
}
}
@Override
public boolean dispatchTouchEvent(MotionEvent event) {
if (gestureDetector.onTouchEvent(event)) {
event.setAction(MotionEvent.ACTION_CANCEL);
}
return super.dispatchTouchEvent(event);
}
@Override
public boolean onDown(MotionEvent e) {
return false;
}
@Override
public boolean onFling(MotionEvent e1, MotionEvent e2, float velocityX,float velocityY) {
if (e1.getX() - e2.getX() <= (-FLEEP_DISTANCE)) {//从左向右滑动
currentTabID = tabHost.getCurrentTab() - 1;
if (currentTabID < 0) {
currentTabID = tabHost.getTabCount() - 1;
}
} else if (e1.getX() - e2.getX() >= FLEEP_DISTANCE) {//从右向左滑动
currentTabID = tabHost.getCurrentTab() + 1;
if (currentTabID >= tabHost.getTabCount()) {
currentTabID = 0;
}
}
tabHost.setCurrentTab(currentTabID);
return false;
}
@Override
public void onLongPress(MotionEvent e) {
}
@Override
public boolean onScroll(MotionEvent e1, MotionEvent e2, float distanceX,float distanceY) {
return false;
}
@Override
public void onShowPress(MotionEvent e) {
}
@Override
public boolean onSingleTapUp(MotionEvent e) {
return false;
}
}
![avatar](https://profile-avatar.csdnimg.cn/default.jpg!1)
yxkfw
- 粉丝: 82
- 资源: 2万+
最新资源
- 电气安装工 二级工.pdf
- MDM+ESB解决方案-企业数据标准化和服务集成的最佳实践
- 网络工程技术中常用英文术语与配置翻译汇总手册
- 软考中级网络工程师 考前冲刺知识点速记
- 闪烁的霓虹灯文字设计404页面.zip
- 三相时域信号的时序频谱图
- TI C2000F28002x烧录进Flash并正常运行,TMS320F280025C的Flash模式模板工程
- 王道C语言初级阶段(C语言入门)
- 2000-2020年年汇率平均价数据.xls
- 京东美妆爬虫数据集,可以用于大数据分析专业毕设做美妆行业数据分析使用
- 基于Deepseek自动生成单元测试的Idea插件
- 《从买货到销售》系列课,全方位提升你的时尚行业竞争力
- 新玩法AI做漫画小说赛道项目玩法教程,操作简单可批量制作
- 新支付宝无人野路子项目玩法教程,无需露脸,实现被动收入
- jdk11 Windows版本
- 1997-2019年各省进出口总额数据
资源上传下载、课程学习等过程中有任何疑问或建议,欢迎提出宝贵意见哦~我们会及时处理!
点击此处反馈
![feedback](https://img-home.csdnimg.cn/images/20220527035711.png)
![feedback](https://img-home.csdnimg.cn/images/20220527035711.png)
![feedback-tip](https://img-home.csdnimg.cn/images/20220527035111.png)