2015年2月16日星期一

Android侧边栏的自定义实现(附源码)

本邮件内容由第三方提供,如果您不想继续收到该邮件,可 点此退订
Android侧边栏的自定义实现(附源码)  阅读原文»

用户名:林炳文 文章数:4 评论数:0
访问量:193:65:70:1 注册日期:2015-02-08

Android侧边栏的自定义实现(附源码)

本文要实现手指在手机上向左或向右移动时,能相应的移动左右两个视图。通过自定义来实现,不借助第三方插件。实现的思路很简单,通过判断手指滑动的距离和速度来决定是否要滚动显示菜单项(左边图片)

先来看看效果:(源码免费下载

wKioL1ThhcfCqkgyAA-FguHsvqY391.gif

目录:

一、实现思路

二、代码清单

三、效果与说明

下面,让我们开始吧:

一、实现思路

1.思路

菜单在左,内容在右,然后菜单显示时和手机右边框有一定的间隔,内容显示一小部分。内容全部显示时,菜单全部不可见。如下面两个图

捕获1

显示内容

捕获2

显示菜单

2.判断逻辑

这是判断手指按着屏幕和手指抬起时要不要显示还是隐藏菜单

捕获

二、代码清单

首先来看下布局:

<LinearLayoutxmlns:android="http://schemas.android.com/apk/res/android"
xmlns:tools="http://schemas.android.com/tools"
android:id="@+id/layout"
android:layout_width="match_parent"
android:layout_height="match_parent"
android:orientation="horizontal"
tools:context=".MainActivity">
android:id="@+id/menu"
android:layout_width="match_parent"
android:layout_height="match_parent"
android:orientation="horizontal"
android:background="@drawable/pn">
android:id="@+id/content"
android:layout_width="match_parent"
android:layout_height="match_parent"
android:orientation="horizontal"
android:background="@drawable/sn">
</LinearLayout>

接下来看看代码,都有注释:

com.example.learningjava;
importcom.example.learningjava.R.string;
importandroid.R.integer;
importandroid.R.menu;
importandroid.os.AsyncTask;
importandroid.os.Build;
importandroid.os.Bundle;
importandroid.annotation.SuppressLint;
importandroid.annotation.TargetApi;
importandroid.widget.LinearLayout.LayoutParams;
importandroid.app.Activity;
importandroid.util.DisplayMetrics;
importandroid.util.Log;
importandroid.view.Menu;
importandroid.view.MotionEvent;
importandroid.view.VelocityTracker;
importandroid.view.Vie

阅读更多内容

没有评论:

发表评论