一、SlidingMenu配置方法

1.下载SlidingMenu:https://github.com/jfeinstein10/SlidingMenu

2.拷贝SlidingMenu-master中的library文件到自己所创建项目中与app同级的位置,并修改其名称为SlidingMenu

3.在项目的setting.gradle文件中添加   include ':SlidingMenu'

其中第2,3步骤可以换成导入library模块,效果等同

4.在build.gradle(Module:app)中添加依赖 compile project(':sliding_menu')

或者通过File->Project Structure为模块app添加Module Dependency依赖项关系

5.修改SlidingMenu的build.gradle中的一些参数,如compileSdkVerdion、buildToolsVersion与你AS相匹配(可参照app的build.gradle中的设置)

6.找到项目的build.gradle文件,复制其

  1. dependencies {
    classpath 'com.android.tools.build:gradle:1.5.0'
  2.  
  3. // NOTE: Do not place your application dependencies here; they belong
    // in the individual module build.gradle files
    }
  1. classpath路径,到SlidingMenu中的build.gradle文件中的classpath使二者保持一致

7.SlidingMenu中使用的是android.util.FloatMath类,导入的时候会报错;原因是这个类已经过时了,建议使用java.lang.Math类~只需要找到相应的错误,将FloatMath替换成Math类即可~

另外改动的位置为最后一行中的FloatMath.sin(f);

float distanceInfluenceForSnapDuration(float f) {
   f -= 0.5f; // center the values about 0.

f *= 0.3f * Math.PI / 2.0f;

return (float) Math.sin(f);

}

8..Build/Make Project(到这步SlidingMenu就已经添加成功了)

二、SlidingMenu的使用

1.MainActivity.java

  1. package com.example.shiyanshi.useslidingmenu;
  2.  
  3. import android.support.v7.app.AppCompatActivity;
    import android.os.Bundle;
    import com.jeremyfeinstein.slidingmenu.lib.SlidingMenu;
  4.  
  5. public class MainActivity extends AppCompatActivity {
  6.  
  7. private SlidingMenu slidingMenu;
  8.  
  9. @Override
    protected void onCreate(Bundle savedInstanceState) {
    super.onCreate(savedInstanceState);
    setContentView(R.layout.activity_main);
  10.  
  11. slidingMenu=new SlidingMenu(this);
    slidingMenu.setMode(SlidingMenu.LEFT);
    slidingMenu.setTouchModeAbove(SlidingMenu.TOUCHMODE_FULLSCREEN);
  12.  
  13. slidingMenu.setBehindOffsetRes(R.dimen.sliding_menu_offset);
    slidingMenu.attachToActivity(this, SlidingMenu.SLIDING_CONTENT);
    slidingMenu.setMenu(R.layout.sliding_menu);
    }
    }
  1. 2.sliding_menu.xml布局文件
  1. <?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">
  2.  
  3. <com.jeremyfeinstein.slidingmenu.lib.SlidingMenu
    android:layout_width="match_parent"
    android:layout_height="wrap_content"
    android:id="@+id/slidingMenuLayout"
    android:background="#ff999999">
    <Button
    android:layout_width="wrap_content"
    android:layout_height="wrap_content"
    android:text="ClickMe"/>
    </com.jeremyfeinstein.slidingmenu.lib.SlidingMenu>
  4.  
  5. </LinearLayout>
  1. 3.dimens.xml文件
  1. <resources>
    <!-- Default screen margins, per the Android Design guidelines. -->
    <dimen name="activity_horizontal_margin">16dp</dimen>
    <dimen name="activity_vertical_margin">16dp</dimen>
    <dimen name="sliding_menu_offset">200dp</dimen>
    </resources>

02安卓用户界面优化之(二)SlidingMenu使用方法的更多相关文章

  1. Android基础知识02—安卓日志工具LogCat的五种方法

    --------Android 02-------- >>> Android的日志工具LogCat    五个方法,记录信息的级别不一样,从低到高为:    1.Log.v()-日志 ...

  2. 转 cocos2dx内存优化 (之二)

    一.cocos2dx之如何优化内存使用(高级篇) 本文由qinning199原创,转载请注明:http://www.cocos2dx.net/?p=93 一.内存优化原则 为了优化应用内存,你应该知道 ...

  3. 【Go】使用压缩文件优化io (二)

    原文链接: https://blog.thinkeridea.com/201907/go/compress_file_io_optimization2.html 上一篇文章<使用压缩文件优化io ...

  4. MySql学习(六) —— 数据库优化理论(二) —— 查询优化技术

    逻辑查询优化包括的技术 1)子查询优化  2)视图重写  3)等价谓词重写  4)条件简化  5)外连接消除  6)嵌套连接消除  7)连接消除  8)语义优化 9)非SPJ优化 一.子查询优化 1. ...

  5. 安卓图表引擎AChartEngine(二) - 示例源码概述和分析

    首先看一下示例中类之间的关系: 1. ChartDemo这个类是整个应用程序的入口,运行之后的效果显示一个list. 2. IDemoChart接口,这个接口定义了三个方法, getName()返回值 ...

  6. 安卓性能优化之清除Handler的Message和Runnable

    安卓性能优化之清除Handler的Message和Runnable Handler是由系统所提供的一种异步消息处理的常用方式,一般情况下不会发生内存泄露. 但既然是调优,当在A_Activity中使用 ...

  7. 安卓安装ZXING(二维码)SDK

    安卓安装ZXING(二维码)SDK 安装<WIFI共享精灵>后,ZXING(二维码)SDK就有了,扫二维码又快而且精度又高. 真是意外的发现.不需要去下载BARCODE SCANNER.

  8. Linux基础优化(二)

    Linux基础优化(二) 一操作系统字符优化 避免出现中文乱码,UTF-8支持中文GBK-Xx支持中文 (一)查看默认编码 [root@centos7 ~]# echo $LANG en_US.UTF ...

  9. 高并发&性能优化(二)------系统监控工具使用

    上一篇主要从总体介绍了高并发&性能优化的相关思路和方法,本篇主要介绍系统监控工具. [CPU查看工具] ------top命令(性能) 进入top命令后,按1即可看到每核CPU的运行指标与详细 ...

随机推荐

  1. Struts2与ajax整合之缺点

    之前有篇博客介绍了Struts2与ajax的整合,链接Struts2之-集成Json插件实现Ajax 这里不再累述,看以上博客. 此篇博客想吐槽一下Struts2的缺点--错误处理做的不好,怎么做的不 ...

  2. 用了 CSDN 的 markdown 编辑器吐槽下~~

    吐槽一下.. . 第一次用 CSDN 的这个 markdown 编辑器,首先感官上看起来还是非常大气相比曾经那个 HTML 编辑器实在时上了N个档次,但实际使用的体验实在是比較糟糕的.希望能改进下哦: ...

  3. http常见的get请求方式和set请求方式。

    一.Get请求方式 以下是我写的一个用get请求方式获取api工厂中汇率的类. package com.example; import java.io.BufferedReader; import j ...

  4. Asp.Net Identity自定义user类的运用,ClaimsIdentity

    mvc5自动生成的用户验证是比较好用的,还可以扩展,可是要求code first,目前使用sqlite,支持entity framework,但不支持code first. 只有自已简单模仿一下了.经 ...

  5. 11g导入大量包含子分区的数据时表空间不足

    问题描述: ORACLE11g使用impdp数据泵导入时遭遇: ORA-01691: Lob 段 ISCS.SYS_LOB0000100750C00045$$ 无法通过 128 (在表空间 RT_DA ...

  6. 关于JS变量和作用域

    ECMAScript 变量:1.基本类型值(简单数据段) 2.引用类型值(可能由过个值构成的对象) → 保存在内存中的对象 动态属性: 只能给引用型值动态添加新属性,以便将来使用. 复制变量值 : 基 ...

  7. 从汇编看c++的new和delete

    下面是c++源码: class X { private: int _x; public: X() : _x(xx) {} ~X() {} }; int main() { X* xp = new X; ...

  8. 深入理解JavaWeb技术内幕之中文编码

    为什么要编码 1.计算机中存储信息的最小单元是1个字节,所能表示的字符范围为0~255个. 2.人类要表示的符号太多,无法用1个字节来完全表示. 常见的编码类型 ASCII码 总共128个,用1个字节 ...

  9. MVC 分页获取数据 及点选按钮

    @model PagedList<Lyxm.Entity.Suggestion>@using Webdiyer.WebControls.Mvc <div>    <ul ...

  10. 红外遥控系统原理及单片机软件解码程序,我的编写经历(C版本)

    应该说现在每一块开发板都带有红外模块,并且大都配置了相应的程序.但其实自己动手写解码程序,更能锻炼自己所学,且不谈程序写的如何,这个过程中肯定是受益良多的.现在我就把我花一下午写出的解码程序与大家分享 ...