732003684

导航

低栏的项目切换

一;布局

<?xml version="1.0" encoding="utf-8"?>

<RelativeLayout xmlns:android="http://schemas.android.com/apk/res/android"
    android:id="@+id/mainweixin"
    android:layout_width="fill_parent"
    android:layout_height="fill_parent"
    android:orientation="vertical"
    android:background="#eee" >  

    <RelativeLayout
        android:id="@+id/main_bottom"
        android:layout_width="match_parent"
        android:layout_height="55dp"
        android:layout_alignParentBottom="true"
        android:orientation="vertical"
        android:background="@drawable/bottom_bar"
        >             
      
        <ImageView
            android:id="@+id/img_tab_now"
            android:layout_width="wrap_content"
            android:layout_height="wrap_content"                     
            android:scaleType="matrix"
            android:layout_gravity="bottom"                
            android:layout_alignParentBottom="true"
            android:src="@drawable/tab_bg" />              
         
         
         <LinearLayout
            android:layout_width="fill_parent"
            android:layout_height="wrap_content"
            android:layout_alignParentBottom="true"
            android:paddingBottom="2dp"            
            >
            
            <LinearLayout
                android:layout_width="wrap_content"
                android:layout_height="wrap_content"
                  android:gravity="center_horizontal"
                  android:orientation="vertical"
                  android:layout_weight="1">                   
                <ImageView
                    android:id="@+id/img_weixin"
                    android:layout_width="wrap_content"
                    android:layout_height="wrap_content"                     
                    android:scaleType="matrix"
                    android:clickable="true"
                    android:src="@drawable/tab_weixin_pressed" />
                <TextView
                    android:layout_width="wrap_content"
                    android:layout_height="wrap_content"
                    android:text="微信"
                    android:textColor="#fff"
                    android:textSize="12sp" />                
             </LinearLayout>
             <LinearLayout
                android:layout_width="wrap_content"
                android:layout_height="wrap_content"
                  android:gravity="center_horizontal"
                  android:orientation="vertical"
                  android:layout_weight="1">                   
                <ImageView
                    android:id="@+id/img_address"
                    android:layout_width="wrap_content"
                    android:layout_height="wrap_content"                     
                    android:scaleType="matrix"
                    android:clickable="true"
                    android:src="@drawable/tab_address_normal" />
                <TextView
                    android:layout_width="wrap_content"
                    android:layout_height="wrap_content"
                    android:text="通讯录"
                    android:textColor="#fff"
                    android:textSize="12sp" />                
             </LinearLayout>
             <LinearLayout
                android:layout_width="wrap_content"
                android:layout_height="wrap_content"
                  android:gravity="center_horizontal"
                  android:orientation="vertical"
                  android:layout_weight="1">                   
                <ImageView
                    android:id="@+id/img_friends"
                    android:layout_width="wrap_content"
                    android:layout_height="wrap_content"                     
                    android:scaleType="matrix"
                    android:clickable="true"
                    android:src="@drawable/tab_find_frd_normal" />
                <TextView
                    android:layout_width="wrap_content"
                    android:layout_height="wrap_content"
                    android:text="朋友们"
                    android:textColor="#fff"
                    android:textSize="12sp" />                
             </LinearLayout>
             
             <LinearLayout
                android:layout_width="wrap_content"
                android:layout_height="wrap_content"
                  android:gravity="center_horizontal"
                  android:orientation="vertical"
                  android:layout_weight="1">                   
                <ImageView
                    android:id="@+id/img_settings"
                    android:layout_width="wrap_content"
                    android:layout_height="wrap_content"                     
                    android:scaleType="matrix"
                    android:clickable="true"
                    android:src="@drawable/tab_settings_normal" />
                <TextView
                    android:layout_width="wrap_content"
                    android:layout_height="wrap_content"
                    android:text="设置"
                    android:textColor="#fff"
                    android:textSize="12sp" />                
             </LinearLayout>        
          
        </LinearLayout>     
       
    </RelativeLayout>
    <LinearLayout
        android:layout_width="fill_parent"
        android:layout_height="wrap_content" 
        android:layout_alignParentTop="true"
        android:layout_above="@id/main_bottom"       
        android:orientation="vertical" >
        
        <android.support.v4.view.ViewPager
            android:id="@+id/tabpager"
            android:layout_width="wrap_content"
            android:layout_height="wrap_content"
            android:layout_gravity="center" > 
        </android.support.v4.view.ViewPager>  
    </LinearLayout>

   

</RelativeLayout>

二:样式

<style name="Anim_style2" parent="android:Theme.NoTitleBar">         
        <item name="android:windowAnimationStyle">@style/AnimFade</item>       
    </style> 
<style name="AnimFade" parent="@android:style/Animation.Activity">  
        <item name="android:activityOpenEnterAnimation">@anim/fade_in</item>  
        <item name="android:activityOpenExitAnimation">@anim/hold</item>        
        <item name="android:activityCloseEnterAnimation">@anim/fade_in</item>  
        <item name="android:activityCloseExitAnimation">@anim/fade_out</item> 
    </style>
fade_in
<?xml version="1.0" encoding="utf-8"?>
<alpha xmlns:android="http://schemas.android.com/apk/res/android"
    android:interpolator="@android:anim/accelerate_interpolator"
    android:fromAlpha="0.0" android:toAlpha="1.0"
    android:duration="300" />
fade_out
<?xml version="1.0" encoding="utf-8"?>
<alpha xmlns:android="http://schemas.android.com/apk/res/android"
    android:interpolator="@android:anim/accelerate_interpolator"
    android:fromAlpha="1.0" android:toAlpha="0.0"
    android:duration="300" />

三:Activity

package cn.bw.activitys;

import java.util.ArrayList;
import java.util.List;

import cn.bw.information.InformationActivity;


import android.app.Activity;
import android.content.Intent;
import android.os.Bundle;
import android.os.Parcelable;
import android.support.v4.view.PagerAdapter;
import android.support.v4.view.ViewPager;
import android.support.v4.view.ViewPager.OnPageChangeListener;
import android.view.Display;
import android.view.Gravity;
import android.view.KeyEvent;
import android.view.LayoutInflater;
import android.view.View;
import android.view.View.OnClickListener;
import android.view.ViewGroup.LayoutParams;
import android.view.animation.Animation;
import android.view.animation.TranslateAnimation;
import android.widget.ImageView;
import android.widget.LinearLayout;
import android.widget.ListView;
import android.widget.PopupWindow;
import android.widget.RelativeLayout;

public class MainWeixinActivity extends Activity {
    public static MainWeixinActivity instance = null;
     
    private ViewPager mTabPager;    
    private ImageView mTabImg;// 动画图片
    private ImageView mTab1,mTab2,mTab3,mTab4;
    private int zero = 0;// 动画图片偏移量
    private int currIndex = 0;// 当前页卡编号
    private int one;//单个水平动画位移
    private int two;
    private int three;
    private LinearLayout mClose;
    private LinearLayout mCloseBtn;
    private RelativeLayout information;
    private View layout;    
    private boolean menu_display = false;
    private PopupWindow menuWindow;
    private LayoutInflater inflater;
    private View view1,view2,view3,view4;
    private List<View> views;
    @Override
    protected void onCreate(Bundle savedInstanceState) {
        super.onCreate(savedInstanceState);
        instance = this;
        setContentView(R.layout.main_weixin);
        initView();
        initData();
        registerListener();
    }
    
    /**
     * 初始化视图控件
     */
    
    private void initView(){
        mTabPager = (ViewPager) findViewById(R.id.tabpager);
        
        mTabImg = (ImageView) findViewById(R.id.img_tab_now);
        mTab1 = (ImageView) findViewById(R.id.img_weixin);
        mTab2 = (ImageView) findViewById(R.id.img_address);
        mTab3 = (ImageView) findViewById(R.id.img_friends);
        mTab4 = (ImageView) findViewById(R.id.img_settings);
    }
    
    /**
     * 初始化数据
     */
    private void initData(){
        //获取屏幕的分辨率,以计算偏移量
        Display display = getWindowManager().getDefaultDisplay();
        int width = display.getWidth();
        one = width/4;  //因为水平有四个叶卡,所以要均分为四份。
        two = one * 2;
        three = one *3;
        //加载布局
        LayoutInflater inflater = LayoutInflater.from(this);
        view1 = inflater.inflate(R.layout.main_tab_weixin, null);
        view2 = inflater.inflate(R.layout.main_tab_address, null);
        view3 = inflater.inflate(R.layout.main_tab_friends, null);
        view4 = inflater.inflate(R.layout.main_tab_settings, null);
                        //将布局放入集合
        views = new ArrayList<View>();
        views.add(view1);
        views.add(view2);
        views.add(view3);
        views.add(view4);
    }
    
    /**
     * 注册监听
     */
    private void registerListener(){
        //设置ViewPager的页面翻滚监听
        mTabPager.setOnPageChangeListener(new myOnPageChangeListener());
        mTab1.setOnClickListener(new myOnClickListener(0));
        mTab2.setOnClickListener(new myOnClickListener(1));
        mTab3.setOnClickListener(new myOnClickListener(2));
        mTab4.setOnClickListener(new myOnClickListener(3));
        mTabPager.setAdapter(adapter);
    }
    
    
    
    private PagerAdapter adapter = new PagerAdapter() {
        
        @Override
        public boolean isViewFromObject(View arg0, Object arg1) {
            // TODO Auto-generated method stub
            return arg0 == arg1;
        }
        
        @Override
        public int getCount() {
            // TODO Auto-generated method stub
            return views.size();
        }

        @Override
        public void destroyItem(View container, int position, Object object) {
            // TODO Auto-generated method stub
            ((ViewPager)container).removeView(views.get(position));
        }

        @Override
        public Object instantiateItem(View container, int position) {
            // TODO Auto-generated method stub
            ((ViewPager)container).addView(views.get(position));
            return views.get(position);
        }
    };
    
    
    public class myOnPageChangeListener implements OnPageChangeListener{

        @Override
        public void onPageScrollStateChanged(int arg0) {
            
        }

        @Override
        public void onPageScrolled(int arg0, float arg1, int arg2) {
            
        }

        @Override
        public void onPageSelected(int arg0) {
            Animation anim = null;
            switch (arg0) {
            case 0:
                mTab1.setImageDrawable(getResources().getDrawable(R.drawable.tab_weixin_pressed));
                if(currIndex == 1){
                    anim = new TranslateAnimation(one, 0, 0, 0);
                    mTab2.setImageDrawable(getResources().getDrawable(R.drawable.tab_address_normal));
                }
                else if(currIndex == 2){
                    anim = new TranslateAnimation(two, 0, 0, 0);
                    mTab3.setImageDrawable(getResources().getDrawable(R.drawable.tab_find_frd_normal));
                }
                else if(currIndex == 3){
                    anim = new TranslateAnimation(three, 0, 0, 0);
                    mTab4.setImageDrawable(getResources().getDrawable(R.drawable.tab_settings_normal));
                }
                break;
            case 1:
                mTab2.setImageDrawable(getResources().getDrawable(R.drawable.tab_address_pressed));
                if (currIndex == 0) {
                    anim = new TranslateAnimation(zero, one, 0, 0);
                    mTab1.setImageDrawable(getResources().getDrawable(R.drawable.tab_weixin_normal));
                }else if (currIndex == 2) {
                    anim = new TranslateAnimation(two, one, 0, 0);
                    mTab3.setImageDrawable(getResources().getDrawable(R.drawable.tab_find_frd_normal));
                }else if (currIndex == 3) {
                    anim = new TranslateAnimation(three, one, 0, 0);
                    mTab4.setImageDrawable(getResources().getDrawable(R.drawable.tab_settings_normal));
                }
                break;
            case 2:
                mTab3.setImageDrawable(getResources().getDrawable(R.drawable.tab_find_frd_pressed));
                if (currIndex == 0) {
                    anim = new TranslateAnimation(zero, two, 0, 0);
                    mTab1.setImageDrawable(getResources().getDrawable(R.drawable.tab_weixin_normal));
                }else if (currIndex == 1) {
                    anim = new TranslateAnimation(one, two, 0, 0);
                    mTab2.setImageDrawable(getResources().getDrawable(R.drawable.tab_address_normal));
                }else if (currIndex == 3) {
                    anim = new TranslateAnimation(three, two, 0, 0);
                    mTab4.setImageDrawable(getResources().getDrawable(R.drawable.tab_settings_normal));
                }
                break;
            case 3:
                mTab4.setImageDrawable(getResources().getDrawable(R.drawable.tab_settings_pressed));
                if (currIndex == 0) {
                    anim = new TranslateAnimation(zero, three, 0, 0);
                    mTab1.setImageDrawable(getResources().getDrawable(R.drawable.tab_weixin_normal));
                }else if (currIndex == 1) {
                    anim = new TranslateAnimation(one, three, 0, 0);
                    mTab2.setImageDrawable(getResources().getDrawable(R.drawable.tab_address_normal));
                }else if (currIndex == 2) {
                    anim = new TranslateAnimation(two, three, 0, 0);
                    mTab3.setImageDrawable(getResources().getDrawable(R.drawable.tab_find_frd_normal));
                }
                break;
            };
            currIndex = arg0;
            anim.setFillAfter(true);
            anim.setDuration(150);
            mTabImg.startAnimation(anim);
        }
        
    }
//    @Override
//    public boolean onKeyDown(int keyCode, KeyEvent event) {
//        if (keyCode == KeyEvent.KEYCODE_BACK && event.getRepeatCount() == 0) {//获取back键
//            if (menu_display == true) {//如果退出界面已存在,界面消失
//                menuWindow.dismiss();
//                menu_display = false;
//            }else {
//                Intent intent = new Intent();
//                intent.setClass(MainWeixinActivity.this,ExitActivity.class);
//                startActivity(intent);
//            }
//        }else if (keyCode == KeyEvent.KEYCODE_MENU) {//菜单键
//            if (menu_display == false) {
//                //点菜单键 ,弹出popupwindow(退出)
//                inflater = LayoutInflater.from(this);
//                layout = inflater.inflate(R.layout.main_menu, null);
//                //添加布局
//                menuWindow = new PopupWindow(layout, LayoutParams.FILL_PARENT, LayoutParams.WRAP_CONTENT);
//                //设置布局在popupwindow中的位置
//                menuWindow.showAtLocation(layout, Gravity.BOTTOM|Gravity.CENTER_HORIZONTAL, 0, 0);
//                mClose = (LinearLayout) layout.findViewById(R.id.menu_close);
//                mCloseBtn = (LinearLayout) layout.findViewById(R.id.menu_close_btn);
//                mCloseBtn.setOnClickListener(new OnClickListener() {
//                    
//                    @Override
//                    public void onClick(View v) {
//                        Intent intent = new Intent();
//                        intent.setClass(MainWeixinActivity.this,ExitActivity.class);
//                        startActivity(intent);
//                        menuWindow.dismiss();
//                    }
//                });
//                menu_display = true;
//            }else {
//                menuWindow.dismiss();
//                menu_display = false;
//            }
//            return false;
//        }
//        return false;
//    }
    
    @Override
    public boolean onKeyDown(int keyCode, KeyEvent event){
        if(keyCode == KeyEvent.KEYCODE_BACK && event.getRepeatCount() == 0){
            if(menu_display){
                menuWindow.dismiss();
                menu_display = false;
            }else {
                Intent intent = new Intent();
                intent.setClass(MainWeixinActivity.this,ExitActivity.class);
                startActivity(intent);
            }
        }else if(keyCode == KeyEvent.KEYCODE_MENU){
            if(menu_display == false){
                //点菜单键 ,弹出popupwindow(退出)
                inflater = LayoutInflater.from(MainWeixinActivity.this);
                layout = inflater.inflate(R.layout.main_menu, null);
                //添加布局
                menuWindow = new PopupWindow(layout,  LayoutParams.FILL_PARENT, LayoutParams.WRAP_CONTENT);
                menuWindow.showAtLocation(layout, Gravity.BOTTOM|Gravity.CENTER_HORIZONTAL, 0, 0);
                mClose = (LinearLayout) layout.findViewById(R.id.menu_close);
                mCloseBtn = (LinearLayout) layout.findViewById(R.id.menu_close_btn);
                mCloseBtn.setOnClickListener(new OnClickListener() {
                    
                    @Override
                    public void onClick(View v) {
                        Intent intent = new Intent();
                        intent.setClass(MainWeixinActivity.this,ExitActivity.class);
                        startActivity(intent);
                        menuWindow.dismiss();
                    }
                });
                menu_display = true;
                
            }else {
                menuWindow.dismiss();
                menu_display = false;
            }
            return false;
        }
        return false;
    }
    
    public class myOnClickListener implements OnClickListener{
        int index = 0;
        public myOnClickListener(int i) {
            this.index = i;
        }
        @Override
        public void onClick(View v) {
            mTabPager.setCurrentItem(index);
        }
    }
    
    //设置标题栏右侧按钮的作用
        public void btnmainright(View v) {  
            Intent intent = new Intent (MainWeixinActivity.this,MainTopRightDialog.class);            
            startActivity(intent);    
            //Toast.makeText(getApplicationContext(), "点击了功能按钮", Toast.LENGTH_LONG).show();
          }      
        public void startchat(View v) {      //小黑  对话界面
            Intent intent = new Intent (MainWeixinActivity.this,ChatActivity.class);            
            startActivity(intent);    
            //Toast.makeText(getApplicationContext(), "登录成功", Toast.LENGTH_LONG).show();
          }  
        public void exit_settings(View v) {                           //退出  伪“对话框”,其实是一个activity
            Intent intent = new Intent (MainWeixinActivity.this,ExitFromSettings.class);            
            startActivity(intent);    
         }
        public void btn_shake(View v) {                                   //手机摇一摇
            Intent intent = new Intent (MainWeixinActivity.this,ShakeActivity.class);            
            startActivity(intent);    
        }
        public void settings_information(View v) {                         //个人信息
            Intent intent = new Intent(MainWeixinActivity.this,InformationActivity.class);
            startActivity(intent);
        }
}

 

posted on 2012-12-27 15:46  732003684  阅读(497)  评论(0编辑  收藏  举报