android的UI开发确实是一件很有趣的事情,也是一件很有挑战性的事情。

本文章是将自己在开发中的项目中使用到的比较好的抽屉效果的原理以及代码整理后写上来的,以备忘记后可以查阅

抽屉效果的原理很简单,就是给其一个事件监听(动作),然后对此动作所作出的反应(开 or 关);

在编写代码的时候要注意的几点如下:

1、 打开抽屉的图标(即触发抽屉的把手),打开后的界面都是布局在<SlidingDrawer/>与<SlidingDrawer/>标签中

2、在<SlidingDrawer/>与<SlidingDrawer/>标签中设置:android:handle="@+id/handle_layout" 用来指定抽屉的把手;设置:android:content="@+id/content_layout" 用来指定打开 抽屉后的View(即抽屉里面的内容)

3、 SlidingDrawer一共有三个监听事件(见代码)

注意:三者的执行顺序,总的原则是:滑动完成后,打开(或者关闭)抽屉

执行的顺序:
1 、setOnDrawerScrollListener(给把手一个动作)
2、 setOnDrawerOpenListener(打开抽屉)或 setOnDrawerCloseListener(关闭抽屉)

下面是代码:

activity_main.xml:

<!-- 在SlidingDrawer这个标签下android:handle:指示的就是抽屉的图片。
android:content:指向的就是抽屉里面的布局。有了这个布局,其实一个抽屉就出来了 --><RelativeLayout xmlns:android="http://schemas.android.com/apk/res/android"android:layout_width="fill_parent"android:layout_height="fill_parent" ><TextViewandroid:layout_width="fill_parent"android:layout_height="wrap_content"android:text="@string/hello"android:textSize="20sp" /><SlidingDrawerandroid:id="@+id/sd"android:layout_width="match_parent"android:layout_height="match_parent"android:content="@+id/myContent"android:handle="@+id/iv"android:orientation="vertical" ><ImageViewandroid:id="@id/iv"android:layout_width="wrap_content"android:layout_height="wrap_content"android:src="@drawable/open1" /><GridViewandroid:id="@id/myContent"android:layout_width="wrap_content"android:layout_height="wrap_content"android:background="@drawable/background"android:gravity="center"android:numColumns="3" /></SlidingDrawer></RelativeLayout>

MainActivity.java 中主要的代码如下:

package com.example.exp_sliding;import android.os.Bundle;
import android.app.Activity;
import android.widget.GridView;
import android.widget.ImageView;
import android.widget.SlidingDrawer;
import android.widget.SlidingDrawer.OnDrawerScrollListener;@SuppressWarnings("deprecation")
public class MainActivity extends Activity {private GridView gridView;private SlidingDrawer slidingDrawer;private ImageView imageView;private int[] icons = { R.drawable.one, R.drawable.two, R.drawable.three,R.drawable.four, R.drawable.five, R.drawable.six, R.drawable.seven,R.drawable.eight, R.drawable.nine };private String[] items = { "one", "two", "three", "four", "five", "six","seven", "eight", "nine" };@Overridepublic void onCreate(Bundle savedInstanceState) {super.onCreate(savedInstanceState);setContentView(R.layout.activity_main);gridView = (GridView) findViewById(R.id.myContent);slidingDrawer = (SlidingDrawer) findViewById(R.id.sd);imageView = (ImageView) findViewById(R.id.iv);// 自定义MyAdapter来实现图标加item的显示效果MyAdapter adapter = new MyAdapter(this, items, icons);gridView.setAdapter(adapter);//滑动slidingDrawer.setOnDrawerScrollListener(new OnDrawerScrollListener() {public void onScrollStarted() {System.out.println("-------->  开始滑动"); }public void onScrollEnded() {System.out.println("-------->  滑动结束"); }});//开抽屉动作响应slidingDrawer.setOnDrawerOpenListener(new SlidingDrawer.OnDrawerOpenListener(){@Overridepublic void onDrawerOpened() {imageView.setImageResource(R.drawable.close1);// 响应开抽屉事件}});//关抽屉动作响应slidingDrawer.setOnDrawerCloseListener(new SlidingDrawer.OnDrawerCloseListener() {@Overridepublic void onDrawerClosed() {imageView.setImageResource(R.drawable.open1);// 响应关抽屉事件}});}
}

这是一个很基础的上下开关抽屉的例子,其中涉及的MyAdapter类是一个图片的收集器,这个相信大家有一定基础的都会写这个吧,由于时间关系,在这里就不贴出来了。

android 实现抽屉效果相关推荐

  1. Android DrawerLayout抽屉效果

    官网GUIDE:http://developer.android.com/training/implementing-navigation/nav-drawer.html 官网示例:Navigatio ...

  2. Android 抽屉效果的导航菜单实现

    抽屉效果的导航菜单 看了很多应用,觉得这种侧滑的抽屉效果的菜单很好. 不用切换到另一个页面,也不用去按菜单的硬件按钮,直接在界面上一个按钮点击,菜单就滑出来,而且感觉能放很多东西. 关于实现,搜索了一 ...

  3. android中仿qq最新版抽屉,Android 自定义View实现抽屉效果

    Android 自定义View实现抽屉效果 说明 这个自定义View,没有处理好多点触摸问题 View跟着手指移动,没有采用传统的scrollBy方法,而是通过不停地重新布局子View的方式,来使得子 ...

  4. Android 抽屉效果Demo

    2019独角兽企业重金招聘Python工程师标准>>> Android 抽屉效果Demo. 转载:http://www.adobex.com/android/source/detai ...

  5. android 右边抽屉,Android实现右边抽屉Drawerlayout效果

    侧边栏是Android应用中很常见的一个界面效果(抽屉效果).而利用DrawerLayout实现右侧栏是相对简单的.而且这个控件自带滑动效果,十分方便. DrawerLayout属于android-s ...

  6. android textview抽屉滑动,Android SlidingDrawer 滑动抽屉效果

    效果如上图,想必大家已经在很多应用中看到过了,下面来看看用SlidingDrawer 实现滑动抽屉效果 从Android1.5开始,加入了android.widget.SlidingDrawer类 S ...

  7. android仿腾讯安全管家首页抽屉效果

    [color=red]转载请说明出处[/color] 最近在做公司新产品的设计,看到腾讯安全管家首页的抽屉效果设计的挺不错,一方面可以讲经常使用的功能模块直接显示给用户,另一方面将用户不常用的功能模块 ...

  8. android 3d侧拉抽屉,iOS动画指南 - 4.右拉的3D抽屉效果

    一切的动画其实都是假象,3D效果也是这样.本篇我们来做一个这样的特效. 先忽略掉3D效果,我们先要做的是一个右拉的抽屉效果. 总体思路: 1.创建一个ContainerViewController容器 ...

  9. 抽屉效果的实现(DrawerLayout和SlidingMenu的对比)

    在做谷歌电子市场的时候用的是DrawerLayout实现的抽屉效果,在新闻客户端的时候用的是开源框架SlidingMenu来实现的,总的来说,各有个的优点,侧滑(开源框架)实现的效果更好,但是Draw ...

最新文章

  1. Overview of ISA and TMG Networking and ISA Networking Case Study (Part 1)
  2. Android动态图标包制作教程,安卓手机ico图标制作美化图文教程
  3. tlplayer for ios V1.0
  4. linux中流设备_[快速上手Linux设备驱动]之块设备驱动流程详解一
  5. 联邦调查局严重夸大了加密威胁数字,从而想获得对手机的访问权限
  6. 安卓10.0内测版现新版手势操作:很实用
  7. 在Flex中获取一个屏幕截图(Screenshot)并将其传递给ASP.NET
  8. JSK-16016 单词排序【排序】
  9. VSCODE: 快速生成html框架
  10. mysql的填充因子_SQL SERVER中,什么是填充因子?
  11. 计算机英语的四种变量,计算机英语:BASIC语言变量
  12. 利用JS控制插入视频的播放/暂停/快进等功能
  13. 关于AI,值得推荐的五本好书
  14. 阿里云Web应用防火墙-WAF
  15. 华为荣耀8电信卡显示无服务器,华为荣耀手机实现双电信卡双待双通,5步告诉你真相...
  16. MySQL实战开发技巧
  17. [分享]错误“应用程序Xcode的这个版本不能与此版本的OS X配合使用”以及Mac源码和IOS开发资料分享
  18. day17 - Web前端概述
  19. Review of Vehicle Recognition Technology - 车辆识别技术综述
  20. GitHub Archive-为了人类文明永存!

热门文章

  1. unix--Tripwire 应用
  2. Qt-Qt Creator的下载、安装与配置(Windows)
  3. mysql性能优化 洪斌_洪斌 - MySQL性能诊断与实践
  4. Linux5常规网络配置,求解red hat linux enterprise 5 网络配置问题
  5. tmp name php,linux环境 上传文件失败 tmp_name为空
  6. 3给定关键字不在字典中_Python龙珠训练营五:数据结构之字符串、字典
  7. lisp一键室内标注_LISP-标注的自动位置调整
  8. caffe特征可视化---python实现
  9. 可用性测试(用户体验)测试
  10. 固件升级_洛达1562a固件升级支持空间音频