1. 先来碎碎念~
导入类库实现SlidingMenu
视频里是用eclipse导入,下面用Android Studio导入SlidingMenu类库
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>