zoukankan      html  css  js  c++  java
  • 低栏的项目切换

    一;布局

    <?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);
            }
    }
  • 相关阅读:
    BZOJ1430小猴打架——prufer序列
    [集训队作业2018]蜀道难——TopTree+贪心+树链剖分+链分治+树形DP
    BZOJ5063旅游——非旋转treap
    bzoj 4570 妖怪
    Luogu 1452 Beauty Contest
    bzoj 1337 最小圆覆盖
    bzoj 1007 水平可见直线
    Luogu 4724 三维凸包
    bzoj 4827 礼物
    hdu 4348 To the moon
  • 原文地址:https://www.cnblogs.com/ct732003684/p/2835829.html
Copyright © 2011-2022 走看看