Android Studio導入SlidingMenu類庫

1. 先來碎碎念~

跟着極客學院的視頻學安卓,裏面有一課是導入類庫實現SlidingMenu
視頻裏是用eclipse導入的T^T
自己鼓搗了一天終於導進去了

2. 實現的功能

就是最基本的功能,右劃或者菜單鍵就打開SlidingMenu像下圖醬嬸兒~
成果

3. 導入類庫的過程

視頻裏面導入了SlidingMenuActionBarSherlock兩個包,說是因爲SlidingMenu/Readme.md裏說要“set up with ActionBarSherlock”
但是,我只導入了SlidingMenu就可以實現那些基礎功能了,並不知道ActionBarSherlock有什麼卵用= =

參考:https://github.com/phodal/learning-android
下面正式開始導入的步驟:

  • 新建空Activity工程UsingSlidingMenu
  • 從github上下載SlidingMenu-master.zip解壓
  • 將其中的SlidingMenu-master/library目錄整個拷貝到UsingSlidingMenu工程文件夾下的任意位置,我是拷貝到了UsingSlidingMenu/libraries/library,並將library改名爲SlidingMenu,即UsingSlidingMenu/libraries/SlidingMenu
  • 在AS中通過Import Module的方式導入庫:File--Import Module,在彈出的框中,通過瀏覽的方式填入待導入庫的路徑AS工作空間/UsingSlidingMenu/libraries/SlidingMenu
  • 修改SlidingMenu裏的build.gradle文件(並不是太懂gradle,看着網上的各種資料以及自己試着改,下面兩個註釋了必須改的不該就不能成功build,其他不改好像也沒什麼事兒)
  1. buildscript {
  2. repositories {
  3. mavenCentral()
  4. }
  5. dependencies {
  6. classpath 'com.android.tools.build:gradle:1.1.0'//必須改
  7. }
  8. }
  9. apply plugin: 'android-library'
  10. dependencies {
  11. compile 'com.android.support:support-v4:13.0.0'
  12. }
  13. android {
  14. compileSdkVersion 21//參考learning-android項目做了修改
  15. buildToolsVersion "21.1.2"//必須改,這裏是參考app目錄裏的build.gradle改的
  16. defaultConfig {
  17. minSdkVersion 14//參考learning-android項目做了修改
  18. targetSdkVersion 21//參考learning-android項目做了修改
  19. }
  20. sourceSets {
  21. main {
  22. java.srcDirs = ['src']
  23. resources.srcDirs = ['src']
  24. aidl.srcDirs = ['src']
  25. renderscript.srcDirs = ['src']
  26. res.srcDirs = ['res']
  27. assets.srcDirs = ['assets']
  28. manifest.srcFile 'AndroidManifest.xml'
  29. }
  30. }
  31. }
  • 不要修改項目根目錄下的build.gradle文件中的dependencies裏的內容,因爲註釋寫着“Do not place your application dependencies here; they belong in the individual module build.gradle files”
  • 修改app目錄下的build.gradle文件
  1. dependencies {
  2. compile fileTree(dir: 'libs', include: ['*.jar'])
  3. compile 'com.android.support:appcompat-v7:21.0.3'
  4. compile project(':SlidingMenu')//加上這句~
  5. }
  • 修改了Gradle文件後代碼編輯器上方會提示同步,點sync now同步
  • 網上有些資料說要修改settings.gradle,但是用import module的方式導入的話好像AS會自動修改這個配置文件
  1. include ':app', ':SlidingMenu'
  2. project(':SlidingMenu').projectDir = new File('libraries/SlidingMenu')

4. 開始開發吧~

下面就可以按照視頻愉快的寫代碼了~
菜單背景色是打代碼的時候少打了兩個9~從灰色變粉色萌萌噠~

MainActivity.java

  1. package com.jikexueyuan.usingslidiingmenu;
  2. import android.os.Bundle;
  3. import android.support.v7.app.ActionBarActivity;
  4. import android.view.KeyEvent;
  5. import com.jeremyfeinstein.slidingmenu.lib.SlidingMenu;
  6. public class MainActivity extends ActionBarActivity {
  7. private SlidingMenu slidingMenu;
  8. @Override
  9. protected void onCreate(Bundle savedInstanceState) {
  10. super.onCreate(savedInstanceState);
  11. setContentView(R.layout.activity_main);
  12. slidingMenu = new SlidingMenu(this);//創建對象
  13. slidingMenu.setMode(SlidingMenu.LEFT);//設定模式,SlidingMenu在左邊
  14. slidingMenu.setBehindOffsetRes(R.dimen.sliding_menu_offset);//配置slidingmenu偏移出來的尺寸
  15. slidingMenu.setTouchModeAbove(SlidingMenu.TOUCHMODE_FULLSCREEN);//全屏都可以拖拽觸摸,打開slidingmenu
  16. slidingMenu.attachToActivity(this,SlidingMenu.SLIDING_CONTENT);//附加到當前的Aty上去
  17. slidingMenu.setMenu(R.layout.slidingmenu);//設置拖拽出來的菜單
  18. }
  19. @Override
  20. public boolean onKeyDown(int keyCode, KeyEvent event) {
  21. //重寫KeyDown事件,菜單鍵按下也能拉出slidingmenu
  22. switch(keyCode){
  23. case KeyEvent.KEYCODE_MENU:
  24. slidingMenu.toggle(true);
  25. break;
  26. default:
  27. break;
  28. }
  29. return super.onKeyDown(keyCode, event);
  30. }
  31. }

下面是佈局文件activity_main.xml

  1. <?xml version="1.0" encoding="utf-8"?>
  2. <LinearLayout xmlns:android="http://schemas.android.com/apk/res/android"
  3. android:orientation="vertical" android:layout_width="match_parent"
  4. android:layout_height="match_parent"
  5. android:background="#ff9999">
  6. <com.jeremyfeinstein.slidingmenu.lib.SlidingMenu
  7. android:layout_width="fill_parent"
  8. android:layout_height="fill_parent"
  9. android:id="@+id/slidingmenulayout">
  10. <Button
  11. android:layout_width="fill_parent"
  12. android:layout_height="wrap_content"
  13. android:text="Click me"/>
  14. </com.jeremyfeinstein.slidingmenu.lib.SlidingMenu>
  15. </LinearLayout>
發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章