天天看點

android-仿美麗說具有按下效果的頂部導航欄

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

pressnavigationbar元件通過美化可以實作“美麗說”具有按下效果的頂部導航欄,如圖:

pressnavigationbar元件可以直接用于生産應用。

android-仿美麗說具有按下效果的頂部導航欄
android-仿美麗說具有按下效果的頂部導航欄

這是美麗說

android-仿美麗說具有按下效果的頂部導航欄

這是pressnavigationbar元件美化後仿美麗說效果圖

pressnavigationbar使用的源碼如下:

[java] view

plaincopy

package cn.w.song.ui;  

import java.util.hashmap;  

import java.util.linkedlist;  

import java.util.list;  

import java.util.map;  

import android.app.activity;  

import android.graphics.color;  

import android.os.bundle;  

import android.view.motionevent;  

import android.view.view;  

import cn.w.song.widget.navigation.pressnavigationbar;  

/** 

 * 這是pressnavigationbar的一個應用demo 

 * 仿"美麗說"頂部的具有按下效果的導航欄 

 * 注意确定w.song.android.widget-1.0.2.jar已經導入項目 

 * 該包已放在該項目的根目錄中。 

 * 了解詳情看博文 

 * @author w.song 

 * @version 1.0.1 

 * @date 2012-4-24 

 */  

public class meilishuopressnavigationbardemoactivity extends activity {  

    @override  

    protected void oncreate(bundle savedinstancestate) {  

        super.oncreate(savedinstancestate);  

        this.setcontentview(r.layout.meilishuopressnavigationbardemo_ui);  

        pressnavigationbar pressnavigationbar = (pressnavigationbar) findviewbyid(r.id.navigationbartest_ui_pressnavigationbar);  

        /* 動态部署資料 */  

        string[] text = { "最熱", "最新", "猜你喜歡" };  

        int[] textsize = { 14, 14, 14 };//機關sp  

        int[] textcolor = { color.white, color.white, color.white };  

        int[] image = { r.drawable.message_left_button_normal,  

                r.drawable.message_middle_button_normal,  

                r.drawable.message_right_button_normal };//未被選擇樣式(圖檔)  

        int[] imageselected = { r.drawable.message_left_button_pressed,  

                r.drawable.message_middle_button_pressed,  

                r.drawable.message_right_button_pressed };//被選擇樣式(圖檔)  

        list<map<string, object>> pressbarlist = new linkedlist<map<string, object>>();  

        for (int i = 0; i < image.length; i++) {  

            map<string, object> map = new hashmap<string, object>();  

            map.put("text", text[i]);  

            map.put("textsize", textsize[i]);  

            map.put("textcolor", textcolor[i]);  

            map.put("image", image[i]);  

            map.put("imageselected", imageselected[i]);  

            pressbarlist.add(map);  

        }  

        /* "按下效果導航欄"添加子元件  */  

        pressnavigationbar.addchild(pressbarlist);  

        /* "按下效果導航欄"添加監視 */  

        pressnavigationbar.setpressnavigationbarlistener(new pressnavigationbar.pressnavigationbarlistener() {  

          /** 

            *@params position 被選位置 

            *@params view 為導航欄 

            *@params event 移動事件 

            */  

            @override  

            public void onnavigationbarclick(int position, view view,  

                    motionevent event) {  

                switch (event.getaction()) {  

                case motionevent.action_down:// 按下去時  

                    break;  

                case motionevent.action_move://移動中  

                case motionevent.action_up:// 擡手時     

                }  

            }  

        });  

    }  

}  

完整demo項目下載下傳  android版仿美麗說按下效果的頂部導航欄

pressnavigationbar元件下載下傳 w.song.android.widget-1.0.2.jar

繼續閱讀