Java代碼
public class MainView extends TabActivity implements OnGestureListener,
OnTouchListener {
TabHost tabHost;
Button tab1_btn1;
private GridView gv1 = null;
private GridView gv2 = null;
private GridView gv3 = null;
private GridView gv4 = null;
// 主界面上每一項的名字
String[] item_name1 = { "公文處理", "辦公郵件" };// 單項的名字
int[] item_images1 = { R.drawable.tab11, R.drawable.tab12 };// 單項的圖片
String[] item_name2 = { "通知公告" };// 單項的名字
int[] item_images2 = { R.drawable.tab21 };// 單項的圖片
String[] item_name3 = { "通訊錄", "日常安排" };// 單項的名字
int[] item_images3 = { R.drawable.tab31, R.drawable.tab32 };// 單項的圖片
String[] item_name4 = { "系統配置", "數據同步", "程序更新" };// 單項的名字
int[] item_images4 = { R.drawable.tab41, R.drawable.tab42, R.drawable.tab43 };// 單項的圖片
private ViewFlipper viewFlipper;
private GestureDetector gestureDetector;
public void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
this.requestWindowFeature(Window.FEATURE_NO_TITLE);// 去掉標題欄
setContentView(R.layout.main);
setTitle("主界面");
setTitleColor(Color.YELLOW);
this.getWindow().setFlags(WindowManager.LayoutParams.FLAG_FULLSCREEN,
WindowManager.LayoutParams.FLAG_FULLSCREEN);// 去掉信息欄註意,這個設置必須放在設置佈局前面,不然會報錯
// 適配器
SimpleAdapter simpleAdapter = new SimpleAdapter(this, //
GetDataList.getDataList(item_name1, item_images1), //
R.layout.mainview_item,//
new String[] { "images", "name" }, //
new int[] { R.id.item_image, R.id.item_text });//
gv1 = (GridView) this.findViewById(R.id.gridview1);
SetGridView.setGridView(gv1, 3, 10, 10, 0);// 設置GridView的相應參數
gv1.setAdapter(simpleAdapter);
simpleAdapter = new SimpleAdapter(this, GetDataList.getDataList(
item_name2, item_images2), R.layout.mainview_item,
new String[] { "images", "name" }, new int[] { R.id.item_image,
R.id.item_text });
gv2 = (GridView) this.findViewById(R.id.gridview2);
SetGridView.setGridView(gv2, 3, 10, 10, 0);
gv2.setAdapter(simpleAdapter);
simpleAdapter = new SimpleAdapter(this, GetDataList.getDataList(
item_name3, item_images3), R.layout.mainview_item,
new String[] { "images", "name" }, new int[] { R.id.item_image,
R.id.item_text });
gv3 = (GridView) this.findViewById(R.id.gridview3);
SetGridView.setGridView(gv3, 3, 10, 10, 0);
gv3.setAdapter(simpleAdapter);
simpleAdapter = new SimpleAdapter(this, GetDataList.getDataList(
item_name4, item_images4), R.layout.mainview_item,
new String[] { "images", "name" }, new int[] { R.id.item_image,
R.id.item_text });
gv4 = (GridView) this.findViewById(R.id.gridview4);
SetGridView.setGridView(gv4, 3, 10, 10, 0);
gv4.setAdapter(simpleAdapter);
tabHost = getTabHost();
/* 自定義標簽 */
setIndicator(R.drawable.tab1, "辦公", R.id.tab1);
setIndicator(R.drawable.tab2, "資訊", R.id.tab2);
setIndicator(R.drawable.tab3, "聯系", R.id.tab3);
setIndicator(R.drawable.tab4, "設置", R.id.tab4);
tabHost.setCurrentTab(0);// 默認顯示tab1
tabHost.setOnTabChangedListener(new OnTabChangeListener() {
// 選項卡單擊事件
public void onTabChanged(String tabId) {
Toast.makeText(MainView.this, tabId, Toast.LENGTH_LONG).show();
}
});
gestureDetector = new GestureDetector(this);
viewFlipper = (ViewFlipper) this.findViewById(R.id.ViewFlipper);
}
// 重寫setIndicator方法,實現自定義的XML
private void setIndicator(int icon, String title, int view) {
View localView = LayoutInflater.from(tabHost.getContext()).inflate(
R.layout.tab_view2, null);
((ImageView) localView.findViewById(R.id.main_activity_tab_image))
.setBackgroundResource(icon);
((TextView) localView.findViewById(R.id.main_activity_tab_text))
.setText(title);
tabHost.addTab(tabHost.newTabSpec(title).setIndicator(localView)
.setContent(view));
}
@Override
public boolean onCreateOptionsMenu(Menu menu) {
menu.add(0, Menu.FIRST, 1, "切換視圖");
menu.add(0, Menu.FIRST + 1, 2, "註銷登錄");
return super.onCreateOptionsMenu(menu);
}
@Override
public boolean onOptionsItemSelected(MenuItem item) {
super.onOptionsItemSelected(item);
switch (item.getItemId()) {
case 1:
Intent intent = new Intent(MainView.this, MainView2.class);
startActivity(intent);
break;
case 2:
break;
}
return true;
}
public boolean onDoubleTap(MotionEvent e) {
if (viewFlipper.isFlipping()) {
viewFlipper.stopFlipping();
} else {
viewFlipper.startFlipping();
}
return true;
}
@Override
public boolean onTouchEvent(MotionEvent event) {
return this.gestureDetector.onTouchEvent(event);
}
@Override
public boolean onDown(MotionEvent e) {
// TODO Auto-generated method stub
return false;
}
@Override
public boolean onFling(MotionEvent e1, MotionEvent e2, float velocityX,
float velocityY) {
// 滑動手勢事件
if (e1.getX() – e2.getX() > 60) {// 向右滑動,下一頁
// setOutAnimation: 設置View退出屏幕時候使用的動畫,參數setInAnimation函數一樣。
this.viewFlipper.setInAnimation(AnimationUtils.loadAnimation(this,
R.anim.zoomin));
this.viewFlipper.setOutAnimation(AnimationUtils.loadAnimation(this,
R.anim.zoomout));
this.viewFlipper.showNext();// 調用該函數來顯示FrameLayout裡面的下一個View。
return true;
} else if (e1.getX() – e2.getX() < -60) {// 向左滑動,上一頁
this.viewFlipper.setInAnimation(AnimationUtils.loadAnimation(this,
R.anim.zoomin));
this.viewFlipper.setOutAnimation(AnimationUtils.loadAnimation(this,
R.anim.zoomout));
this.viewFlipper.showPrevious();// 調用該函數來顯示FrameLayout裡面的上一個View。
return true;
}
return false;
}
@Override
public void onLongPress(MotionEvent e) {
// TODO Auto-generated method stub
}
@Override
public boolean onScroll(MotionEvent e1, MotionEvent e2, float distanceX,
float distanceY) {
// TODO Auto-generated method stub
return false;
}
@Override
public void onShowPress(MotionEvent e) {
// TODO Auto-generated method stub
}
@Override
public boolean onSingleTapUp(MotionEvent e) {
// TODO Auto-generated method stub
return false;
}
@Override
public boolean onTouch(View v, MotionEvent event) {
// TODO Auto-generated method stub
return false;
}
}
Xml代碼
<?xml version="1.0" encoding="utf-8"?>
<LinearLayout xmlns:android="http://schemas.android.com/apk/res/android"
android:orientation="vertical" android:layout_width="fill_parent"
android:layout_height="fill_parent">
<TabHost android:id="@android:id/tabhost" android:layout_width="fill_parent"
android:orientation="vertical" android:layout_height="fill_parent">
<LinearLayout android:orientation="vertical"
android:layout_width="fill_parent" android:layout_height="fill_parent"
android:background="#F0F8FF">
<TabWidget android:id="@android:id/tabs"
android:background="#ffffffff" android:layout_alignParentBottom="true"
android:layout_width="fill_parent" android:layout_height="wrap_content" />
<FrameLayout android:id="@android:id/tabcontent"
android:layout_width="fill_parent" android:layout_height="fill_parent">
<ViewFlipper android:id="@+id/ViewFlipper"
android:layout_width="fill_parent" android:layout_height="fill_parent">
<!– 標簽1 –>
<LinearLayout android:id="@+id/tab1"
android:layout_width="fill_parent" android:layout_height="fill_parent"
androidrientation="vertical">
<GridView android:id="@+id/gridview1"
android:layout_width="fill_parent" android:layout_height="fill_parent"
android:layout_marginTop="5dp" android:layout_gravity="center"
android:textColor="#FFFFFF">
</GridView>
</LinearLayout>
<!– 標簽2 –>
<LinearLayout android:id="@+id/tab2"
android:layout_width="fill_parent" android:layout_height="fill_parent"
androidrientation="vertical">
<GridView android:id="@+id/gridview2"
android:layout_width="fill_parent" android:layout_height="fill_parent"
android:layout_marginTop="5dp" android:layout_gravity="center"
android:textColor="#FFFFFF">
</GridView>
</LinearLayout>
<!– 標簽3 –>
<LinearLayout android:id="@+id/tab3"
android:layout_width="fill_parent" android:layout_height="fill_parent"
androidrientation="vertical">
<GridView android:id="@+id/gridview3"
android:layout_width="fill_parent" android:layout_height="fill_parent"
android:layout_marginTop="5dp" android:layout_gravity="center"
android:textColor="#FFFFFF">
</GridView>
</LinearLayout>
<!– 標簽4–>
<LinearLayout android:id="@+id/tab4"
android:layout_width="fill_parent" android:layout_height="fill_parent"
androidrientation="vertical">
<GridView android:id="@+id/gridview4"
android:layout_width="fill_parent" android:layout_height="fill_parent"
android:layout_marginTop="5dp" android:layout_gravity="center"
android:textColor="#FFFFFF">
</GridView>
</LinearLayout>
</ViewFlipper>
</FrameLayout>
</LinearLayout>
</TabHost>
</LinearLayout>
Xml代碼
<?xml version="1.0" encoding="utf-8"?>
<RelativeLayout xmlns:android="http://schemas.android.com/apk/res/android"
android:orientation="vertical" android:layout_width="fill_parent"
android:layout_height="fill_parent" android:id="@+id/buttom_menu_relativelayout">
<ImageView android:layout_height="wrap_content"
android:layout_width="wrap_content" android:id="@+id/item_image"
android:layout_centerHorizontal="true" android:scaleType="fitXY">
</ImageView>
<TextView android:layout_height="wrap_content"
android:layout_width="wrap_content" android:id="@+id/item_text"
android:layout_centerHorizontal="true" android:layout_below="@+id/item_image"
android:textColor="#050505" android:textSize="17sp">
</TextView>
</RelativeLayout>
作者“AndLi”