2025-02-17

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”
 

作者“AndLi”
 

發佈留言

發佈留言必須填寫的電子郵件地址不會公開。 必填欄位標示為 *