Android 開發自己的網絡收音機2——電台列表(SlidingMenu側滑欄)


  上一篇文章總體規划了這個項目的情況,今天講講實現電台列表。今天其實主要想講解的是SlidingMenu,也就是我們平時說的側滑欄,現在很多應用都有用這種UI效果。SlidingMenu側滑欄功能實現的方式很多,可以自己使用ViewGroup實現也可以自己繪圖實現。我這里借用了一個開源項目SlidingMenu,因為我這里不是研究如何實現SlidingMenu,而且為了快速實現這種功能,所以就直接使用這個開源項目的成果。

(PS:新建的QQ群,有興趣可以加入一起討論:Android群:322599434)

 

 

  

上面就是側滑欄的效果,指定一邊滑動,就可以拉出一個新的界面出來。

 

1、工程里引用SlidingMenu

  首先我們說說這個開源工程如何使用,因為SlidingMenu是以工程庫的形式使用,因此我們只需要在我們的工程里面應用這個工程就行。下面說說具體步驟:(這是給初學者看的哈,有經驗的跳過)

 

  我們添加SlidingMenu后,可以查看該工程屬性,其中有一個Library的屬性,說明這是一個Library工程。然后只需要在我們使用的工程里添加應用這個外部庫就可以。

 

這里添加外部Library,因為我還引用了另外一個解碼庫Vitamio,所以會有兩個外部庫。

 

2、初始化SlidingMenu

//Edited by mythou
//http://www.cnblogs.com/mythou/
  private void initChannelMenu() {
     //創建SlidingMenu對象 mChannelMenu
= new SlidingMenu(this);
     //設置側滑欄菜單位置,這里在左邊。拉動菜單時,會從左邊彈出 mChannelMenu.setMode(SlidingMenu.LEFT);
     //設置觸摸的范圍,這里設置全屏 mChannelMenu.setTouchModeAbove(SlidingMenu.TOUCHMODE_FULLSCREEN);
     //設置陰影的寬度,查看上面第二張效果圖,靠右邊的位置,有一個陰影過渡。就是這個東西 mChannelMenu.setShadowWidthRes(R.dimen.shadow_width);
     //這里是陰影效果,可以設置圖片或者一個顏色過渡 mChannelMenu.setShadowDrawable(R.drawable.shadow);
     //設置后面間距,側滑欄和原來界面間距 mChannelMenu.setBehindOffsetRes(R.dimen.slidingmenu_offset);
     //邊框的角度,這里指邊界地方 mChannelMenu.setFadeDegree(
0.35f);
     //把側滑欄關聯到當前的Activity mChannelMenu.attachToActivity(
this, SlidingMenu.SLIDING_CONTENT);
     //側滑欄的布局文件 mChannelMenu.setMenu(R.layout.channel_slide_menu); }

  上面給出了SlidingMenu的詳細初始化配置,我們使用的時候可以根據需要的實際效果配置,達到我們需要的效果。SlidingMenu這個開源工程接口實現很好,可以實現很復雜的配置,同時使用的過程也十分簡單,如果你只是單純需要這種功能,借用這個開源項目是不錯的選擇。如果需要自己實現,也可以借鑒一下這工程。

 

3、彈出和收起SlidingMenu

  一幫情況下,只有設置了上面的mChannelMenu.setTouchModeAbove(SlidingMenu.TOUCHMODE_FULLSCREEN) ,我們只要在屏幕上面向右滑動就可以把SlidingMenu拉出來,不過有時候我們也需要實現點擊某個按鈕就可以把它拉出來,就像我們上面的“電台列表”按鈕,點擊一下會自動彈出SlidingMenu處理,要實現這功能很簡單,只要調動SlidingMenu一個借口即可。

//Edited by mythou
//http://www.cnblogs.com/mythou/
mOpenMenuButton.setOnClickListener(new OnClickListener() { @Override public void onClick(View v) {
    //調用SlidingMenu的顯示菜單接口 mChannelMenu.showMenu(); } });

上面通過調用showMenu()即可顯示菜單。隱藏SlidingMenu同樣只需要調用一個接口

 
         
//Edited by mythou
//http://www.cnblogs.com/mythou/
@Override public void onBackPressed() { if (mChannelMenu.isMenuShowing()) {
     //隱藏SlidingMenu,這里的Content就是我們的主Activity。 mChannelMenu.showContent(); }
else { super.onBackPressed(); } }

我這里放在了返回鍵的處理,按下返回鍵的時候,自動收起SlidingMenu菜單。

 

4、總結

  SlidingMenu是一個在Git上很火也很實用的項目,通過使用該項目可以快速在我們的項目中使用側滑欄功能,只要按照我上面配置在新工程引用SlidingMenu就可以。另外補充一點,SlidingMenu提供了一個例子,不過需要用到另外一個開源工程ActionBarSherlock ,如果要配置該例子,注意引用這工程。不過我配置的時候遇到不少問題,建議大家按照我上面方法直接新建一個工程,先看看SlidingMenu的使用和效果。

 

SlidingMenu的Git項目托管地址:https://github.com/jfeinstein10/SlidingMenu

 

系列文章:

Android 開發自己的網絡收音機1——功能要求及設計方案

 

Edited by mythou

原創博文,轉載請標明出處:http://www.cnblogs.com/mythou/p/3205100.html 


免責聲明!

本站轉載的文章為個人學習借鑒使用,本站對版權不負任何法律責任。如果侵犯了您的隱私權益,請聯系本站郵箱yoyou2525@163.com刪除。



 
粵ICP備18138465號   © 2018-2025 CODEPRJ.COM