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

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

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

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

这是美丽说这是PressNavigationBar组件美化后仿美丽说效果图

PressNavigationBar使用的源码如下:

[java] view
plain
copy

  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 = { 14, 14, 14 };//单位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

时间: 2024-10-02 08:46:45

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

Android仿百度外卖自定义下拉刷新效果_Android

现如今的APP各式各样,同样也带来了各种需求,一个下拉刷新都能玩出花样了,前两天订饭的时候不经意间看到了"百度外卖"的下拉刷新,今天的主题就是它–自定义下拉刷新动画. 看一下实现效果吧: 动画 我们先来看看Android中的动画吧: Android中的动画分为三种: Tween动画,这一类的动画提供了旋转.平移.缩放等效果. Alpha – 淡入淡出 Scale – 缩放效果 Roate – 旋转效果 Translate – 平移效果 Frame动画(帧动画),这一类动画可以创建一个D

Android仿百度外卖自定义下拉刷新效果

现如今的APP各式各样,同样也带来了各种需求,一个下拉刷新都能玩出花样了,前两天订饭的时候不经意间看到了"百度外卖"的下拉刷新,今天的主题就是它–自定义下拉刷新动画. 看一下实现效果吧: 动画 我们先来看看Android中的动画吧: Android中的动画分为三种: Tween动画,这一类的动画提供了旋转.平移.缩放等效果. Alpha – 淡入淡出 Scale – 缩放效果 Roate – 旋转效果 Translate – 平移效果 Frame动画(帧动画),这一类动画可以创建一个D

Android仿网易客户端顶部导航栏效果_Android

最近刚写了一个网易客户端首页导航条的动画效果,现在分享出来给大家学习学习.我说一下这个效果的核心原理.下面是效果图:          首先是布局,这个布局是我从网易客户端反编译后弄来的.大家看后应该明白,布局文件如下: <FrameLayout android:id="@id/column_navi" android:layout_width="fill_parent" android:layout_height="wrap_content&quo

Android实现顶部导航栏可点击可滑动效果(仿微信仿豆瓣网)

使用ViewPager,PagerSlidingTabStrip,SwipeRefreshLayout打造一款可以点击可以侧滑的顶部导航栏. 先简单介绍一下所用的两个个开源库. PagerSlidingTabStrip Github地址 用法: 1.向app Module中的build.gradle中添加依赖 dependencies { compile 'com.astuetz:pagerslidingtabstrip:1.0.1' } 2.把PagerSlidingTabStrip这个控件添

Android项目实战之仿网易顶部导航栏效果_Android

随着时间的推移现在的软件要求显示的内容越来越多,所以要在小的屏幕上能够更好的显示更多的内容,首先我们会想到底部菜单栏,但是有时候想网易新闻要显示的内容太多,而且又想在主页面全部显示出来,所以有加了顶部导航栏,但是Android这样的移动设备内存是受限的,那么多界面缓存到内存中,很容易导致内存溢出,这个是比较致命的,所以不得不考虑.虽然我在之前也做过网易的顶部导航栏但是方式并不好,就像使用viewpager做一些复杂的界面由于图片占用内存过多,很容易导致内存溢出,学习了今天的内容大家做一下对比相信

Android仿斗鱼直播的弹幕效果_Android

记得之前有位朋友在我的公众号里问过我,像直播的那种弹幕功能该如何实现?如今直播行业确实是非常火爆啊,大大小小的公司都要涉足一下直播的领域,用斗鱼的话来讲,现在就是千播之战.而弹幕则无疑是直播功能当中最为重要的一个功能之一,那么今天,我就带着大家一起来实现一个简单的Android端弹幕效果. 分析 首先我们来看一下斗鱼上的弹幕效果,如下图所示: 这是一个Dota2游戏直播的界面,我们可以看到,在游戏界面的上方有很多的弹幕,看直播的观众们就是在这里进行讨论的. 那么这样的一个界面该如何实现呢?其实并

Android项目实战之仿网易顶部导航栏效果

随着时间的推移现在的软件要求显示的内容越来越多,所以要在小的屏幕上能够更好的显示更多的内容,首先我们会想到底部菜单栏,但是有时候想网易新闻要显示的内容太多,而且又想在主页面全部显示出来,所以有加了顶部导航栏,但是Android这样的移动设备内存是受限的,那么多界面缓存到内存中,很容易导致内存溢出,这个是比较致命的,所以不得不考虑.虽然我在之前也做过网易的顶部导航栏但是方式并不好,就像使用viewpager做一些复杂的界面由于图片占用内存过多,很容易导致内存溢出,学习了今天的内容大家做一下对比相信

Android仿斗鱼直播的弹幕效果

记得之前有位朋友在我的公众号里问过我,像直播的那种弹幕功能该如何实现?如今直播行业确实是非常火爆啊,大大小小的公司都要涉足一下直播的领域,用斗鱼的话来讲,现在就是千播之战.而弹幕则无疑是直播功能当中最为重要的一个功能之一,那么今天,我就带着大家一起来实现一个简单的Android端弹幕效果. 分析 首先我们来看一下斗鱼上的弹幕效果,如下图所示: 这是一个Dota2游戏直播的界面,我们可以看到,在游戏界面的上方有很多的弹幕,看直播的观众们就是在这里进行讨论的. 那么这样的一个界面该如何实现呢?其实并

Android仿泡泡窗实现下拉菜单条实例代码

功能描述:点击下拉按钮,显示出所有的条目,有删除和点击功能,点击后将条目显示. 注意:泡泡窗默认是没有焦点的.要让泡泡窗获取到焦点.假如listview的item中有Button,ImageButton,CheckBox等会强制获取焦点的view 此时,listview的item无法获取焦点,从而无法被点击 解决方法:给item的根布局增加以下属性 Android:descendantFocusability="blocksDescendants"设置之后,Button获取焦点,ite