android-仿美丽说具有按下效果的顶部导航栏

转自http://blog.csdn.net/swadair/article/details/7494395

PressNavigationBar组件通过美化可以实现“美丽说”具有按下效果的顶部导航栏,如图:

PressNavigationBar组件可以直接用于生产应用。

android-仿美丽说具有按下效果的顶部导航栏

android-仿美丽说具有按下效果的顶部导航栏这是美丽说android-仿美丽说具有按下效果的顶部导航栏这是PressNavigationBar组件美化后仿美丽说效果图


PressNavigationBar使用的源码如下:

[java] view plaincopy
  1. package cn.w.song.ui;  
  2.   
  3. import java.util.HashMap;  
  4. import java.util.LinkedList;  
  5. import java.util.List;  
  6. import java.util.Map;  
  7.   
  8. import android.app.Activity;  
  9. import android.graphics.Color;  
  10. import android.os.Bundle;  
  11. import android.view.MotionEvent;  
  12. import android.view.View;  
  13. import cn.w.song.widget.navigation.PressNavigationBar;  
  14.   
  15. /** 
  16.  * 这是PressNavigationBar的一个应用demo 
  17.  * 仿"美丽说"顶部的具有按下效果的导航栏 
  18.  * 注意确定w.song.android.widget-1.0.2.jar已经导入项目 
  19.  * 该包已放在该项目的根目录中。 
  20.  * 了解详情看博文 
  21.  * @author w.song 
  22.  * @version 1.0.1 
  23.  * @date 2012-4-24 
  24.  */  
  25. public class MeiLiShuoPressNavigationBarDemoActivity extends Activity {  
  26.     @Override  
  27.     protected void onCreate(Bundle savedInstanceState) {  
  28.         super.onCreate(savedInstanceState);  
  29.         this.setContentView(R.layout.meilishuopressnavigationbardemo_ui);  
  30.         PressNavigationBar pressNavigationBar = (PressNavigationBar) findViewById(R.id.navigationbartest_ui_PressNavigationBar);  
  31.         /* 动态部署数据 */  
  32.         String[] text = { "最热""最新""猜你喜欢" };  
  33.         int[] textSize = { 141414 };//单位sp  
  34.         int[] textColor = { Color.WHITE, Color.WHITE, Color.WHITE };  
  35.         int[] image = { R.drawable.message_left_button_normal,  
  36.                 R.drawable.message_middle_button_normal,  
  37.                 R.drawable.message_right_button_normal };//未被选择样式(图片)  
  38.         int[] imageSelected = { R.drawable.message_left_button_pressed,  
  39.                 R.drawable.message_middle_button_pressed,  
  40.                 R.drawable.message_right_button_pressed };//被选择样式(图片)  
  41.         List<Map<String, Object>> pressBarList = new LinkedList<Map<String, Object>>();  
  42.         for (int i = 0; i < image.length; i++) {  
  43.             Map<String, Object> map = new HashMap<String, Object>();  
  44.             map.put("text", text[i]);  
  45.             map.put("textSize", textSize[i]);  
  46.             map.put("textColor", textColor[i]);  
  47.             map.put("image", image[i]);  
  48.             map.put("imageSelected", imageSelected[i]);  
  49.             pressBarList.add(map);  
  50.         }  
  51.           
  52.         /* "按下效果导航栏"添加子组件  */  
  53.         pressNavigationBar.addChild(pressBarList);  
  54.           
  55.         /* "按下效果导航栏"添加监视 */  
  56.         pressNavigationBar.setPressNavigationBarListener(new PressNavigationBar.PressNavigationBarListener() {  
  57.           /** 
  58.             *@params position 被选位置 
  59.             *@params view 为导航栏 
  60.             *@params event 移动事件 
  61.             */  
  62.             @Override  
  63.             public void onNavigationBarClick(int position, View view,  
  64.                     MotionEvent event) {  
  65.                 switch (event.getAction()) {  
  66.                 case MotionEvent.ACTION_DOWN:// 按下去时  
  67.                       
  68.                     break;  
  69.                 case MotionEvent.ACTION_MOVE://移动中  
  70.                       
  71.                     break;  
  72.                 case MotionEvent.ACTION_UP:// 抬手时     
  73.                       
  74.                     break;  
  75.                 }  
  76.             }  
  77.         });  
  78.     }  
  79. }  

完整demo项目下载  android版仿美丽说按下效果的顶部导航栏

PressNavigationBar组件下载 w.song.android.widget-1.0.2.jar



上一篇:ALinq 入门学习(五)--删除修改数据


下一篇:去除Android 6.0 界面下的导航栏:NavigationBar