Android UI之SlidingMenu側滑菜單
SlidingMenu側滑菜單是一種比較新的設定介面或配置介面的效果,在主介面左滑或者右滑出現設定介面效果,能方便的進行各種操作。很多優秀的應用都採用了這種介面方案,像facebook、人人網、everynote、Google+、網易新聞、知乎日報、有道雲筆記等等。
現在這種互動方式越來越流行了,雖然這種互動方式可以通過自訂群組件的方式來實現,但是用第三方開源庫更簡單。地址: https://github.com/jfeinstein10/SlidingMenu.git
側滑菜單實現原理:
在一個Activity的布局中需要有兩部分,一個是菜單(menu)的布局,一個是內容(content)的布局。兩個布局橫向排列,菜單布局在左,內容布局在右。初始化的時候將菜單布局向左位移,以至於能夠完全隱藏,這樣內容布局就會完全顯示在Activity中。然後通過監聽手指滑動事件,來改變菜單布局的左位移距離,從而控制功能表布局的顯示和隱藏。
執行個體:
運行效果:
要想能夠實現SlidingMenu的效果,首先必須要將它作為libary匯入到你的工程,目錄結構如下:
代碼清單:
主介面內容布局:activity_main.xml
側滑菜單布局:slidingmenu.xml
尺寸資源檔:dimens.xml
16dp 16dp 150dp 15dp
shadow.xml資源 這個資源檔是用來實現陰影製作效果的圖形,使用了漸層的繪圖效果。
Java原始碼檔案:MainActivity.java
package com.rainsong.slidingmenudemo;import android.os.Bundle;import android.app.Activity;import android.view.Menu;import com.jeremyfeinstein.slidingmenu.lib.SlidingMenu;public class MainActivity extends Activity { @Override protected void onCreate(Bundle savedInstanceState) { super.onCreate(savedInstanceState); setContentView(R.layout.activity_main); // 執行個體化滑動菜單對象 SlidingMenu menu = new SlidingMenu(this); // 設定為左滑菜單 menu.setMode(SlidingMenu.LEFT); // 設定觸控螢幕幕的模式 menu.setTouchModeAbove(SlidingMenu.TOUCHMODE_FULLSCREEN); // 設定滑動陰影的寬度 menu.setShadowWidthRes(R.dimen.shadow_width); // 設定滑動陰影的映像資源 menu.setShadowDrawable(R.drawable.shadow); // 設定滑動菜單划出時首頁面顯示的剩餘寬度 menu.setBehindOffsetRes(R.dimen.slidingmenu_offset); // 設定漸入漸出效果的值 menu.setFadeDegree(0.35f); // 附加在Activity上 menu.attachToActivity(this, SlidingMenu.SLIDING_CONTENT); // 設定滑動菜單的布局 menu.setMenu(R.layout.slidingmenu); } @Override public boolean onCreateOptionsMenu(Menu menu) { // Inflate the menu; this adds items to the action bar if it is present. getMenuInflater().inflate(R.menu.main, menu); return true; }}