1. 先來碎碎念~
跟着極客學院的視頻學安卓,裏面有一課是導入類庫實現SlidingMenu
視頻裏是用eclipse導入的T^T
自己鼓搗了一天終於導進去了
2. 實現的功能
就是最基本的功能,右劃或者菜單鍵就打開SlidingMenu像下圖醬嬸兒~
3. 導入類庫的過程
視頻裏面導入了SlidingMenu和ActionBarSherlock兩個包,說是因爲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,其他不改好像也沒什麼事兒)
buildscript {
repositories {
mavenCentral()
}
dependencies {
classpath 'com.android.tools.build:gradle:1.1.0'//必須改
}
}
apply plugin: 'android-library'
dependencies {
compile 'com.android.support:support-v4:13.0.0'
}
android {
compileSdkVersion 21//參考learning-android項目做了修改
buildToolsVersion "21.1.2"//必須改,這裏是參考app目錄裏的build.gradle改的
defaultConfig {
minSdkVersion 14//參考learning-android項目做了修改
targetSdkVersion 21//參考learning-android項目做了修改
}
sourceSets {
main {
java.srcDirs = ['src']
resources.srcDirs = ['src']
aidl.srcDirs = ['src']
renderscript.srcDirs = ['src']
res.srcDirs = ['res']
assets.srcDirs = ['assets']
manifest.srcFile 'AndroidManifest.xml'
}
}
}
- 不要修改項目根目錄下的build.gradle文件中的
dependencies
裏的內容,因爲註釋寫着“Do not place your application dependencies here; they belong in the individual module build.gradle files” - 修改app目錄下的build.gradle文件
dependencies {
compile fileTree(dir: 'libs', include: ['*.jar'])
compile 'com.android.support:appcompat-v7:21.0.3'
compile project(':SlidingMenu')//加上這句~
}
- 修改了Gradle文件後代碼編輯器上方會提示同步,點sync now同步
- 網上有些資料說要修改settings.gradle,但是用import module的方式導入的話好像AS會自動修改這個配置文件
include ':app', ':SlidingMenu'
project(':SlidingMenu').projectDir = new File('libraries/SlidingMenu')
4. 開始開發吧~
下面就可以按照視頻愉快的寫代碼了~
菜單背景色是打代碼的時候少打了兩個9~從灰色變粉色萌萌噠~
MainActivity.java
package com.jikexueyuan.usingslidiingmenu;
import android.os.Bundle;
import android.support.v7.app.ActionBarActivity;
import android.view.KeyEvent;
import com.jeremyfeinstein.slidingmenu.lib.SlidingMenu;
public class MainActivity extends ActionBarActivity {
private SlidingMenu slidingMenu;
@Override
protected void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
setContentView(R.layout.activity_main);
slidingMenu = new SlidingMenu(this);//創建對象
slidingMenu.setMode(SlidingMenu.LEFT);//設定模式,SlidingMenu在左邊
slidingMenu.setBehindOffsetRes(R.dimen.sliding_menu_offset);//配置slidingmenu偏移出來的尺寸
slidingMenu.setTouchModeAbove(SlidingMenu.TOUCHMODE_FULLSCREEN);//全屏都可以拖拽觸摸,打開slidingmenu
slidingMenu.attachToActivity(this,SlidingMenu.SLIDING_CONTENT);//附加到當前的Aty上去
slidingMenu.setMenu(R.layout.slidingmenu);//設置拖拽出來的菜單
}
@Override
public boolean onKeyDown(int keyCode, KeyEvent event) {
//重寫KeyDown事件,菜單鍵按下也能拉出slidingmenu
switch(keyCode){
case KeyEvent.KEYCODE_MENU:
slidingMenu.toggle(true);
break;
default:
break;
}
return super.onKeyDown(keyCode, event);
}
}
下面是佈局文件activity_main.xml
<?xml version="1.0" encoding="utf-8"?>
<LinearLayout xmlns:android="http://schemas.android.com/apk/res/android"
android:orientation="vertical" android:layout_width="match_parent"
android:layout_height="match_parent"
android:background="#ff9999">
<com.jeremyfeinstein.slidingmenu.lib.SlidingMenu
android:layout_width="fill_parent"
android:layout_height="fill_parent"
android:id="@+id/slidingmenulayout">
<Button
android:layout_width="fill_parent"
android:layout_height="wrap_content"
android:text="Click me"/>
</com.jeremyfeinstein.slidingmenu.lib.SlidingMenu>
</LinearLayout>