popupwindow实现炫酷动画UI

转自http://blog.csdn.net/onceing/article/details/47611489


自定义弹窗按钮实现下过如下:动画多点,顺便加了点击有音乐效果



代码实现:MainActivity

[java]  view plain  copy
  1. package com.wsj.wsjdemo;  
  2.   
  3.   
  4. import android.graphics.drawable.ColorDrawable;  
  5. import android.media.AudioManager;  
  6. import android.media.SoundPool;  
  7. import android.os.Build;  
  8. import android.os.Bundle;  
  9. import android.annotation.SuppressLint;  
  10. import android.annotation.TargetApi;  
  11. import android.app.Activity;  
  12. import android.view.Gravity;  
  13. import android.view.View;  
  14. import android.view.View.OnClickListener;  
  15. import android.view.ViewGroup.LayoutParams;  
  16. import android.view.animation.AlphaAnimation;  
  17. import android.view.animation.Animation;  
  18. import android.view.animation.AnimationSet;  
  19. import android.view.animation.RotateAnimation;  
  20. import android.view.animation.ScaleAnimation;  
  21. import android.view.animation.TranslateAnimation;  
  22. import android.view.animation.Animation.AnimationListener;  
  23. import android.widget.ImageView;  
  24. import android.widget.LinearLayout;  
  25. import android.widget.PopupWindow;  
  26. import android.widget.Toast;  
  27.   
  28. public class MainActivity extends Activity implements OnClickListener{  
  29.   
  30.     private ImageView bt_add_main;  
  31.     private SoundPool sp;// 声明一个SoundPool  
  32.     private int music;// 定义一个整型用load();来设置suondIDf  
  33.     private ImageView iv_createtask_center, iv_createproject_center,  
  34.             iv_registration_center, iv_oa_center, iv_add_center;  
  35.     private LinearLayout ll_createtask_center, ll_createproject_center,  
  36.             ll_registration_center, ll_oa_center;  
  37.     private PopupWindow menu;  
  38.     private int y1, y2;// y1:新建弹出框中新建任务/新建项目的高度 y2:新建弹出框中签到/OA的高度  
  39.   
  40.     @Override  
  41.     protected void onCreate(Bundle savedInstanceState) {  
  42.         super.onCreate(savedInstanceState);  
  43.         setContentView(R.layout.activity_main);  
  44.   
  45.         bt_add_main = (ImageView) findViewById(R.id.bt_add_main);  
  46.         iv_createtask_center = (ImageView) findViewById(R.id.iv_createtask_center);  
  47.         iv_createproject_center = (ImageView) findViewById(R.id.iv_createproject_center);  
  48.         iv_registration_center = (ImageView) findViewById(R.id.iv_registration_center);  
  49.         iv_oa_center = (ImageView) findViewById(R.id.iv_oa_center);  
  50.   
  51.         sp = new SoundPool(10, AudioManager.STREAM_SYSTEM, 5);// 第一个参数为同时播放数据流的最大个数,第二数据流类型,第三为声音质量  
  52.         music = sp.load(this, R.raw.key_sound, 1); // 把你的声音素材放到res/raw里,第2个参数即为资源文件,第3个为音乐的优先级  
  53.           
  54.         setListener();  
  55.           
  56.         inipopmenu();  
  57.     }  
  58.       
  59.     private void setListener() {  
  60.         // TODO Auto-generated method stub  
  61.         bt_add_main.setOnClickListener(this);  
  62.     }  
  63.   
  64.     @Override  
  65.     public void onClick(View v) {  
  66.         // TODO Auto-generated method stub  
  67.         switch (v.getId()) {  
  68.         case R.id.bt_add_main:  
  69.             // 启动动画  
  70.             sp.play(music, 11001);// 播放音效  
  71.             // 获取弹出框中两排按钮在屏幕上的高度  
  72.             int[] locations1 = new int[2];  
  73.             ll_createtask_center.getLocationOnScreen(locations1);  
  74.             y1 = locations1[1];  
  75.             int[] locations2 = new int[2];  
  76.             ll_registration_center.getLocationOnScreen(locations2);  
  77.             y2 = locations2[1];  
  78.   
  79.             // 显示新建弹出框  
  80.             menu.showAtLocation(  
  81.                     MainActivity.this.findViewById(R.id.mainLayout),  
  82.                     Gravity.BOTTOM | Gravity.CENTER_HORIZONTAL, 00);  
  83.             rotate(iv_add_center);// 弹出框中最下方按钮添加旋转动画  
  84.   
  85.             // 弹出框中按钮弹出动画  
  86.             tran(ll_createtask_center, y1, 0true);  
  87.             tran(ll_createproject_center, y1, 50true);  
  88.             tran(ll_registration_center, y2, 100true);  
  89.             tran(ll_oa_center, y2, 150true);  
  90.             break;  
  91.               
  92.             //创建任务  
  93.         case R.id.iv_createtask_center:  
  94.             //Toast.makeText(this, "创建任务", 0).show();  
  95.             //不能Toast,需要发送Handler,或者Intent跳转Activity  
  96.             break;  
  97.             //创建项目  
  98.         case R.id.iv_createproject_center:  
  99.             //Toast.makeText(this, "创建项目", 0).show();  
  100.             break;  
  101.             //签到  
  102.         case R.id.iv_registration_center:  
  103.             //Toast.makeText(this, "签到", 0).show();  
  104.             break;  
  105.             //表单  
  106.         case R.id.iv_oa_center:  
  107.             //Toast.makeText(this, "表单", 0).show();  
  108.             break;  
  109.           
  110.         default:  
  111.             break;  
  112.         }  
  113.     }  
  114.     /** 
  115.      * @方法名称:rotate 
  116.      * @描述: 旋转动画 
  117.      * @param view 
  118.      *            要添加动画的View 
  119.      * @返回类型:void 
  120.      */  
  121.     public void rotate(View view) {  
  122.         // 从0开始旋转360度,以图片中心为圆心旋转(0.5f,0.5f表示图片中心 1.0f,1.0f表示右下角0.0f,o.0f表示左上角)  
  123.         RotateAnimation ra = new RotateAnimation(0135,  
  124.                 Animation.RELATIVE_TO_SELF, 0.5f, Animation.RELATIVE_TO_SELF,  
  125.                 0.5f);  
  126.         ra.setDuration(500);  
  127.         // ra.setRepeatCount(1);  
  128.         // ra.setRepeatMode(Animation.REVERSE);  
  129.         ra.setFillAfter(true);  
  130.         view.startAnimation(ra);  
  131.     }  
  132.       
  133.     /** 
  134.      * @方法名称:inipopmenu 
  135.      * @描述: 初始化新建弹出框 
  136.      * @返回类型:void 
  137.      */  
  138.     @TargetApi(Build.VERSION_CODES.HONEYCOMB)  
  139.     @SuppressLint("NewApi")  
  140.     private void inipopmenu() {  
  141.         // 初始化新建弹出框  
  142.         View contentView = View.inflate(MainActivity.this,  
  143.                 R.layout.create_pop_menu, null);  
  144.   
  145.         /********************************************************************/  
  146.         // 避免运行在Android 4.0上程序报空指针异常,原因是跟硬盘加速有关(?)  
  147.         // contentView.setLayerType(View.LAYER_TYPE_SOFTWARE, null);  
  148.         /********************************************************************/  
  149.         ll_createtask_center = (LinearLayout) contentView  
  150.                 .findViewById(R.id.ll_createtask_center);  
  151.         ll_createproject_center = (LinearLayout) contentView  
  152.                 .findViewById(R.id.ll_createproject_center);  
  153.         ll_registration_center = (LinearLayout) contentView  
  154.                 .findViewById(R.id.ll_registration_center);  
  155.         ll_oa_center = (LinearLayout) contentView  
  156.                 .findViewById(R.id.ll_oa_center);  
  157.         iv_createtask_center = (ImageView) contentView  
  158.                 .findViewById(R.id.iv_createtask_center);  
  159.         iv_createproject_center = (ImageView) contentView  
  160.                 .findViewById(R.id.iv_createproject_center);  
  161.         iv_registration_center = (ImageView) contentView  
  162.                 .findViewById(R.id.iv_registration_center);  
  163.         iv_oa_center = (ImageView) contentView.findViewById(R.id.iv_oa_center);  
  164.         iv_add_center = (ImageView) contentView  
  165.                 .findViewById(R.id.iv_add_center);  
  166.   
  167.         MyOnClickListener listener = new MyOnClickListener();  
  168.         // 点击四个按钮其他位置隐藏弹出框  
  169.         contentView.findViewById(R.id.pop_layout).setOnClickListener(listener);  
  170.   
  171.         // 弹出框最下方关闭按钮添加点击事件监听  
  172.         iv_add_center.setOnClickListener(listener);  
  173.   
  174.         menu = new PopupWindow(contentView);  
  175.         // PopUpWindow必须设置宽高,否则调用showAtLocation方法无法显示  
  176.         // 设置SelectPicPopupWindow弹出窗体的宽  
  177.         menu.setWidth(LayoutParams.MATCH_PARENT);  
  178.         // 设置SelectPicPopupWindow弹出窗体的高  
  179.         menu.setHeight(LayoutParams.MATCH_PARENT);  
  180.         // 设置SelectPicPopupWindow弹出窗体可点击  
  181.         menu.setFocusable(true);  
  182.         // 实例化一个ColorDrawable颜色为半透明  
  183.         ColorDrawable dw = new ColorDrawable(0x80000000);  
  184.         // 设置SelectPicPopupWindow弹出窗体的背景  
  185.         menu.setBackgroundDrawable(dw);  
  186.     }  
  187.       
  188.       
  189.     /** 
  190.      * @类名称: MyOnClickListener 
  191.      * @类描述: 自定义点击事件监听 
  192.      */  
  193.     class MyOnClickListener implements OnClickListener {  
  194.   
  195.         @Override  
  196.         public void onClick(View v) {  
  197.             sp.play(music, 11001);// 播放音效  
  198.             reRotate(iv_add_center);// 按钮反向旋转动画  
  199.   
  200.             // 弹出框隐藏动画  
  201.             retran(ll_oa_center, y2, 0false);  
  202.             retran(ll_registration_center, y2, 50false);  
  203.             retran(ll_createproject_center, y1, 100false);  
  204.             retran(ll_createtask_center, y1, 150false);  
  205.         }  
  206.     }  
  207.       
  208.       
  209.     /** 
  210.      * @方法名称:reRotate 
  211.      * @描述: 反方向旋转动画 
  212.      * @param view 
  213.      *            要添加反方向旋转动画的View 
  214.      * @返回类型:void 
  215.      */  
  216.     public void reRotate(View view) {  
  217.         // 从0开始旋转360度,以图片中心为圆心旋转(0.5f,0.5f表示图片中心 1.0f,1.0f表示右下角0.0f,o.0f表示左上角)  
  218.         RotateAnimation ra = new RotateAnimation(1350,  
  219.                 Animation.RELATIVE_TO_SELF, 0.5f, Animation.RELATIVE_TO_SELF,  
  220.                 0.5f);  
  221.         ra.setDuration(500);  
  222.         // ra.setRepeatCount(1);//重复次数  
  223.         // ra.setRepeatMode(Animation.REVERSE);//是否反方向执行  
  224.         ra.setFillAfter(true);  
  225.         ra.setAnimationListener(new AnimationListener() {  
  226.   
  227.             @Override  
  228.             public void onAnimationStart(Animation animation) {  
  229.             }  
  230.   
  231.             @Override  
  232.             public void onAnimationRepeat(Animation animation) {  
  233.             }  
  234.   
  235.             @Override  
  236.             public void onAnimationEnd(Animation animation) {  
  237.                 // 最后一个执行完动画之后执行的代码  
  238.                 if (menu != null && menu.isShowing()) {  
  239.                     menu.dismiss();  
  240.                 }  
  241.             }  
  242.         });  
  243.         view.startAnimation(ra);  
  244.     }  
  245.       
  246.       
  247.     /** 
  248.      * @方法名称:retran 
  249.      * @描述: 回弹动画 
  250.      * @param view 
  251.      *            执行动画的控件 
  252.      * @param y 
  253.      *            移动的距离 
  254.      * @param start 
  255.      *            开始执行动画的时间 
  256.      * @param flag 
  257.      *            标识执行的是弹出的动画还是隐藏的动画 true标识弹出动画 
  258.      * @返回类型:void 
  259.      */  
  260.     private void retran(final View view, final int y, final int start,  
  261.             final boolean flag) {  
  262.         TranslateAnimation animation;  
  263.         if (flag) {  
  264.             animation = new TranslateAnimation(00, -DensityUtil.dip2px(  
  265.                     getApplicationContext(), 50), 0);  
  266.         } else {  
  267.             animation = new TranslateAnimation(000, -DensityUtil.dip2px(  
  268.                     getApplicationContext(), 50));  
  269.         }  
  270.         animation.setDuration(150);  
  271.         animation.setFillAfter(true);  
  272.         animation.setAnimationListener(new AnimationListener() {  
  273.   
  274.             @Override  
  275.             public void onAnimationStart(Animation animation) {  
  276.             }  
  277.   
  278.             @Override  
  279.             public void onAnimationRepeat(Animation animation) {  
  280.             }  
  281.   
  282.             @Override  
  283.             public void onAnimationEnd(Animation animation) {  
  284.                 if (flag) {  
  285.                     view.setVisibility(View.VISIBLE);  
  286.                     scaleAndAlpha(iv_createproject_center);  
  287.                     scaleAndAlpha(iv_createtask_center);  
  288.                     scaleAndAlpha(iv_oa_center);  
  289.                     scaleAndAlpha(iv_registration_center);  
  290.                 } else {  
  291.                     tran(view, y, start, flag);  
  292.                 }  
  293.             }  
  294.         });  
  295.         view.startAnimation(animation);  
  296.     }  
  297.       
  298.       
  299.     private void scaleAndAlpha(final View view) {  
  300.   
  301.         AlphaAnimation alphaAnimation = new AlphaAnimation(01.0f);  
  302.         alphaAnimation.setDuration(100);  
  303.         alphaAnimation.setFillAfter(true);  
  304.   
  305.         ScaleAnimation animation = new ScaleAnimation(0f, 1.1f, 0f, 1.1f,  
  306.                 Animation.RELATIVE_TO_SELF, 0.5f, Animation.RELATIVE_TO_SELF,  
  307.                 0.5f);  
  308.         animation.setDuration(200);  
  309.         animation.setFillAfter(true);  
  310.   
  311.         AnimationSet set = new AnimationSet(false);  
  312.         set.addAnimation(alphaAnimation);  
  313.         set.addAnimation(animation);  
  314.   
  315.         set.setAnimationListener(new AnimationListener() {  
  316.   
  317.             @Override  
  318.             public void onAnimationStart(Animation animation) {  
  319.   
  320.             }  
  321.   
  322.             @Override  
  323.             public void onAnimationRepeat(Animation animation) {  
  324.   
  325.             }  
  326.   
  327.             @Override  
  328.             public void onAnimationEnd(Animation animation) {  
  329.                 reScale(view);  
  330.             }  
  331.         });  
  332.         view.startAnimation(set);  
  333.     }  
  334.   
  335.     private void reScale(View view) {  
  336.         ScaleAnimation animation = new ScaleAnimation(1.1f, 1.0f, 1.1f, 1.0f,  
  337.                 Animation.RELATIVE_TO_SELF, 0.5f, Animation.RELATIVE_TO_SELF,  
  338.                 0.5f);  
  339.         animation.setDuration(100);  
  340.         animation.setFillAfter(true);  
  341.         view.startAnimation(animation);  
  342.     }  
  343.       
  344.       
  345.     /** 
  346.      * @方法名称:tran 
  347.      * @描述: 显示弹出框时执行的动画 
  348.      * @param view 
  349.      *            要执行动画的View 
  350.      * @param y 
  351.      *            执行动画的View的高 
  352.      * @param start 
  353.      *            执行动画的开始时间 
  354.      * @返回类型:void 
  355.      */  
  356.     private void tran(final View view, final int y, final int start,  
  357.             final boolean flag) {  
  358.         int heightPixels = getResources().getDisplayMetrics().heightPixels;  
  359.         TranslateAnimation animation;  
  360.         if (flag) {  
  361.             animation = new TranslateAnimation(00, heightPixels - y,  
  362.                     -DensityUtil.dip2px(getApplicationContext(), 50));  
  363.         } else {  
  364.             animation = new TranslateAnimation(00, -DensityUtil.dip2px(  
  365.                     getApplicationContext(), 50), heightPixels - y);  
  366.         }  
  367.         animation.setStartOffset(start);  
  368.         animation.setDuration(150);  
  369.         animation.setFillAfter(true);  
  370.         animation.setAnimationListener(new AnimationListener() {  
  371.   
  372.             @Override  
  373.             public void onAnimationStart(Animation animation) {  
  374.             }  
  375.   
  376.             @Override  
  377.             public void onAnimationRepeat(Animation animation) {  
  378.             }  
  379.   
  380.             @Override  
  381.             public void onAnimationEnd(Animation animation) {  
  382.                 if (flag) {  
  383.                     retran(view, y, start, flag);  
  384.                 }  
  385.             }  
  386.         });  
  387.         view.startAnimation(animation);  
  388.     }  
  389.   
  390.   
  391.       
  392.   
  393. }  


自定义popupwindow文件create_pop_menu.xml

[java]  view plain  copy
  1. <?xml version="1.0" encoding="utf-8"?>  
  2. <LinearLayout xmlns:android="http://schemas.android.com/apk/res/android"  
  3.     android:id="@+id/pop_layout"  
  4.     android:layout_width="match_parent"  
  5.     android:layout_height="match_parent"  
  6.     android:orientation="vertical" >  
  7.   
  8.     <LinearLayout  
  9.         android:layout_width="match_parent"  
  10.         android:layout_height="0dp"  
  11.         android:layout_weight="1"  
  12.         android:background="@drawable/center_background"  
  13.         android:orientation="horizontal" >  
  14.   
  15.         <LinearLayout  
  16.             android:layout_width="match_parent"  
  17.             android:layout_height="match_parent"  
  18.             android:layout_marginTop="160dp"  
  19.             android:layout_weight="1"  
  20.             android:gravity="center_horizontal"  
  21.             android:orientation="vertical" >  
  22.   
  23.             <LinearLayout  
  24.                 android:id="@+id/ll_createtask_center"  
  25.                 android:layout_width="70dp"  
  26.                 android:layout_height="98dp"  
  27.                 android:layout_marginTop="50dp"  
  28.                 android:gravity="center"  
  29.                 android:orientation="vertical"  
  30.                 android:visibility="invisible" >  
  31.   
  32.                 <LinearLayout  
  33.                     android:layout_width="70dp"  
  34.                     android:layout_height="70dp"  
  35.                     android:background="@drawable/ll_createtask"  
  36.                     android:gravity="center" >  
  37.   
  38.                     <ImageView  
  39.                         android:id="@+id/iv_createtask_center"  
  40.                         android:layout_width="54dp"  
  41.                         android:layout_height="32dp"  
  42.                         android:onClick="onTabClicked"  
  43.                         android:src="@drawable/iv_createtask"  
  44.                         android:visibility="invisible" />  
  45.   
  46.                 </LinearLayout>  
  47.   
  48.                 <TextView  
  49.                     android:layout_width="wrap_content"  
  50.                     android:layout_height="wrap_content"  
  51.                     android:layout_marginTop="10dp"  
  52.                     android:text="创建任务"  
  53.                     android:textColor="#888888" />  
  54.             </LinearLayout>  
  55.   
  56.             <LinearLayout  
  57.                 android:id="@+id/ll_registration_center"  
  58.                 android:layout_width="70dp"  
  59.                 android:layout_height="98dp"  
  60.                 android:layout_marginTop="20dp"  
  61.                 android:gravity="center"  
  62.                 android:orientation="vertical"  
  63.                 android:visibility="invisible" >  
  64.   
  65.                 <LinearLayout  
  66.                     android:layout_width="70dp"  
  67.                     android:layout_height="70dp"  
  68.                     android:background="@drawable/ll_registration"  
  69.                     android:gravity="center" >  
  70.   
  71.                     <ImageView  
  72.                         android:id="@+id/iv_registration_center"  
  73.                         android:layout_width="54dp"  
  74.                         android:layout_height="32dp"  
  75.                         android:onClick="onTabClicked"  
  76.                         android:src="@drawable/iv_registration"  
  77.                         android:visibility="invisible" />  
  78.   
  79.                 </LinearLayout>  
  80.   
  81.                 <TextView  
  82.                     android:layout_width="wrap_content"  
  83.                     android:layout_height="wrap_content"  
  84.                     android:layout_marginTop="10dp"  
  85.                     android:text="签到"  
  86.                     android:textColor="#888888" />  
  87.             </LinearLayout>  
  88.         </LinearLayout>  
  89.   
  90.         <LinearLayout  
  91.             android:layout_width="match_parent"  
  92.             android:layout_height="match_parent"  
  93.             android:layout_marginTop="160dp"  
  94.             android:layout_weight="1"  
  95.             android:gravity="center_horizontal"  
  96.             android:onClick="onTabClicked"  
  97.             android:orientation="vertical" >  
  98.   
  99.             <LinearLayout  
  100.                 android:id="@+id/ll_createproject_center"  
  101.                 android:layout_width="70dp"  
  102.                 android:layout_height="98dp"  
  103.                 android:layout_marginTop="50dp"  
  104.                 android:gravity="center"  
  105.                 android:orientation="vertical"  
  106.                 android:visibility="invisible" >  
  107.   
  108.                 <LinearLayout  
  109.                     android:layout_width="70dp"  
  110.                     android:layout_height="70dp"  
  111.                     android:background="@drawable/ll_createproject"  
  112.                     android:gravity="center" >  
  113.   
  114.                     <ImageView  
  115.                         android:id="@+id/iv_createproject_center"  
  116.                         android:layout_width="54dp"  
  117.                         android:layout_height="32dp"  
  118.                 android:onClick="onTabClicked"  
  119.                         android:src="@drawable/iv_createproject"  
  120.                         android:visibility="invisible" />  
  121.                 </LinearLayout>  
  122.   
  123.                 <TextView  
  124.                     android:layout_width="wrap_content"  
  125.                     android:layout_height="wrap_content"  
  126.                     android:layout_marginTop="10dp"  
  127.                     android:text="创建项目"  
  128.                     android:textColor="#888888" />  
  129.             </LinearLayout>  
  130.   
  131.             <LinearLayout  
  132.                 android:id="@+id/ll_oa_center"  
  133.                 android:layout_width="70dp"  
  134.                 android:layout_height="98dp"  
  135.                 android:layout_marginTop="20dp"  
  136.                 android:gravity="center"  
  137.                 android:orientation="vertical"  
  138.                 android:visibility="invisible" >  
  139.   
  140.                 <LinearLayout  
  141.                     android:layout_width="70dp"  
  142.                     android:layout_height="70dp"  
  143.                     android:background="@drawable/ll_oa"  
  144.                     android:gravity="center" >  
  145.   
  146.                     <ImageView  
  147.                         android:id="@+id/iv_oa_center"  
  148.                         android:layout_width="54dp"  
  149.                         android:layout_height="32dp"  
  150.                         android:onClick="onTabClicked"  
  151.                         android:src="@drawable/iv_oa"  
  152.                         android:visibility="invisible" />  
  153.   
  154.                 </LinearLayout>  
  155.   
  156.                 <TextView  
  157.                     android:layout_width="wrap_content"  
  158.                     android:layout_height="wrap_content"  
  159.                     android:layout_marginTop="10dp"  
  160.                     android:text="表单"  
  161.                     android:textColor="#888888" />  
  162.             </LinearLayout>  
  163.         </LinearLayout>  
  164.     </LinearLayout>  
  165.   
  166.     <LinearLayout  
  167.         android:id="@+id/ll_add_center"  
  168.         android:layout_width="match_parent"  
  169.         android:layout_height="wrap_content"  
  170.         android:background="#00000000"  
  171.         android:gravity="center" >  
  172.   
  173.         <ImageView  
  174.             android:id="@+id/iv_add_center"  
  175.             android:layout_width="wrap_content"  
  176.             android:layout_height="52dp"  
  177.             android:src="@drawable/add_tabbar" />  
  178.     </LinearLayout>  
  179.   
  180. </LinearLayout>  

activity_main.xml文件:

[java]  view plain  copy
  1. <?xml version="1.0" encoding="utf-8"?>  
  2. <RelativeLayout xmlns:android="http://schemas.android.com/apk/res/android"  
  3.     android:id="@+id/mainLayout"  
  4.     android:layout_width="match_parent"  
  5.     android:layout_height="match_parent"  
  6.     android:background="#F1F1F1" >  
  7.   
  8.     <LinearLayout  
  9.         android:id="@+id/main_bottom"  
  10.         android:layout_width="match_parent"  
  11.         android:layout_height="52dp"  
  12.         android:layout_alignParentBottom="true"  
  13.         android:background="@drawable/tabbar"  
  14.         android:gravity="center_vertical"  
  15.         android:orientation="horizontal" >  
  16.   
  17.         <!-- android:background="@color/bottom_bar_normal_bg" -->  
  18.   
  19.         <RelativeLayout  
  20.             android:id="@+id/btn_container_conversation"  
  21.             android:layout_width="0dp"  
  22.             android:layout_height="match_parent"  
  23.             android:layout_weight="1" >  
  24.   
  25.             <ImageView  
  26.                 android:id="@+id/bt_message_main"  
  27.                 android:layout_width="match_parent"  
  28.                 android:layout_height="match_parent"  
  29.                 android:clickable="true"  
  30.                 android:onClick="onTabClicked"  
  31.                 android:src="@drawable/message_tabbar" />  
  32.   
  33.             <!-- <Button -->  
  34.             <!-- android:id="@+id/bt_message_main" -->  
  35.             <!-- android:layout_width="match_parent" -->  
  36.             <!-- android:layout_height="match_parent" -->  
  37.             <!-- android:background="@drawable/main_bottom_item_bg" -->  
  38.             <!-- android:drawableTop="@drawable/tab_chat_bg" -->  
  39.             <!-- android:onClick="onTabClicked" -->  
  40.             <!-- android:paddingBottom="2dip" -->  
  41.             <!-- android:paddingTop="7dip" -->  
  42.             <!-- android:scaleType="matrix" -->  
  43.             <!-- android:text="消息" -->  
  44.             <!-- android:textColor="@color/white" -->  
  45.             <!-- android:textSize="12sp" /> -->  
  46.   
  47.   
  48.             <!-- <TextView -->  
  49.             <!-- android:id="@+id/unread_msg_number" -->  
  50.             <!-- android:layout_width="wrap_content" -->  
  51.             <!-- android:layout_height="wrap_content" -->  
  52.             <!-- android:layout_alignParentRight="true" -->  
  53.             <!-- android:layout_marginRight="10dp" -->  
  54.             <!-- android:background="@drawable/tab_unread_bg" -->  
  55.             <!-- android:gravity="center" -->  
  56.             <!-- android:text="7" -->  
  57.             <!-- android:textColor="@android:color/white" -->  
  58.             <!-- android:textSize="12sp" -->  
  59.             <!-- android:visibility="invisible" /> -->  
  60.         </RelativeLayout>  
  61.   
  62.         <RelativeLayout  
  63.             android:id="@+id/btn_container_address_list"  
  64.             android:layout_width="0dp"  
  65.             android:layout_height="match_parent"  
  66.             android:layout_weight="1" >  
  67.   
  68.             <ImageView  
  69.                 android:id="@+id/bt_taskcenter_main"  
  70.                 android:layout_width="match_parent"  
  71.                 android:layout_height="match_parent"  
  72.                 android:clickable="true"  
  73.                 android:onClick="onTabClicked"  
  74.                 android:src="@drawable/task_tabbar" />  
  75.   
  76.             <!-- <Button -->  
  77.             <!-- android:id="@+id/bt_taskcenter_main" -->  
  78.             <!-- android:layout_width="match_parent" -->  
  79.             <!-- android:layout_height="match_parent" -->  
  80.             <!-- android:background="@drawable/main_bottom_item_bg" -->  
  81.             <!-- android:drawableTop="@drawable/tab_contact_list_bg" -->  
  82.             <!-- android:onClick="onTabClicked" -->  
  83.             <!-- android:paddingBottom="2dip" -->  
  84.             <!-- android:paddingTop="7dip" -->  
  85.             <!-- android:scaleType="matrix" -->  
  86.             <!-- android:text="任务中心" -->  
  87.             <!-- android:textColor="@color/white" -->  
  88.             <!-- android:textSize="12sp" /> -->  
  89.   
  90.   
  91.             <!-- <TextView -->  
  92.             <!-- android:id="@+id/unread_address_number" -->  
  93.             <!-- android:layout_width="wrap_content" -->  
  94.             <!-- android:layout_height="wrap_content" -->  
  95.             <!-- android:layout_alignParentRight="true" -->  
  96.             <!-- android:layout_marginRight="10dp" -->  
  97.             <!-- android:background="@drawable/tab_unread_bg" -->  
  98.             <!-- android:gravity="center" -->  
  99.             <!-- android:text="7" -->  
  100.             <!-- android:textColor="@android:color/white" -->  
  101.             <!-- android:textSize="12sp" -->  
  102.             <!-- android:visibility="invisible" /> -->  
  103.         </RelativeLayout>  
  104.   
  105.         <RelativeLayout  
  106.             android:id="@+id/btn_add_setting"  
  107.             android:layout_width="0dp"  
  108.             android:layout_height="match_parent"  
  109.             android:layout_weight="1" >  
  110.   
  111.             <ImageView  
  112.                 android:id="@+id/bt_add_main"  
  113.                 android:layout_width="match_parent"  
  114.                 android:layout_height="match_parent"  
  115.                 android:clickable="true"  
  116.                 android:onClick="onTabClicked"  
  117.                 android:src="@drawable/add_tabbar" />  
  118.         </RelativeLayout>  
  119.   
  120.         <RelativeLayout  
  121.             android:id="@+id/btn_message_setting"  
  122.             android:layout_width="0dp"  
  123.             android:layout_height="match_parent"  
  124.             android:layout_weight="1" >  
  125.   
  126.             <ImageView  
  127.                 android:id="@+id/bt_addressbook_main"  
  128.                 android:layout_width="match_parent"  
  129.                 android:layout_height="match_parent"  
  130.                 android:clickable="true"  
  131.                 android:onClick="onTabClicked"  
  132.                 android:src="@drawable/addressbook_tabbar" />  
  133.             <!-- <Button -->  
  134.             <!-- android:id="@+id/bt_addressbook_main" -->  
  135.             <!-- android:layout_width="match_parent" -->  
  136.             <!-- android:layout_height="match_parent" -->  
  137.             <!-- android:background="@drawable/main_bottom_item_bg" -->  
  138.             <!-- android:drawableTop="@drawable/tab_job_bg" -->  
  139.             <!-- android:onClick="onTabClicked" -->  
  140.             <!-- android:paddingBottom="2dip" -->  
  141.             <!-- android:paddingTop="7dip" -->  
  142.             <!-- android:scaleType="matrix" -->  
  143.             <!-- android:text="通讯录" -->  
  144.             <!-- android:textColor="@color/white" -->  
  145.             <!-- android:textSize="12sp" /> -->  
  146.         </RelativeLayout>  
  147.   
  148.         <RelativeLayout  
  149.             android:id="@+id/btn_container_setting"  
  150.             android:layout_width="0dp"  
  151.             android:layout_height="match_parent"  
  152.             android:layout_weight="1" >  
  153.   
  154.             <ImageView  
  155.                 android:id="@+id/bt_mycenter_main"  
  156.                 android:layout_width="match_parent"  
  157.                 android:layout_height="match_parent"  
  158.                 android:clickable="true"  
  159.                 android:onClick="onTabClicked"  
  160.                 android:src="@drawable/my_tabbar" />  
  161.   
  162.             <!-- <Button -->  
  163.             <!-- android:id="@+id/bt_mycenter_main" -->  
  164.             <!-- android:layout_width="match_parent" -->  
  165.             <!-- android:layout_height="match_parent" -->  
  166.             <!-- android:background="@drawable/main_bottom_item_bg" -->  
  167.             <!-- android:drawableTop="@drawable/tab_setting_bg" -->  
  168.             <!-- android:onClick="onTabClicked" -->  
  169.             <!-- android:paddingBottom="2dip" -->  
  170.             <!-- android:paddingTop="7dip" -->  
  171.             <!-- android:scaleType="matrix" -->  
  172.             <!-- android:text="我" -->  
  173.             <!-- android:textColor="@color/white" -->  
  174.             <!-- android:textSize="12sp" /> -->  
  175.         </RelativeLayout>  
  176.     </LinearLayout>  
  177.   
  178.     <RelativeLayout  
  179.         android:id="@+id/fragment_container"  
  180.         android:layout_width="match_parent"  
  181.         android:layout_height="match_parent"  
  182.         android:layout_above="@id/main_bottom" />  
  183.   
  184. </RelativeLayout>  

点击源码下载

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值