热门标签 | HotTags
当前位置:  开发笔记 > 编程语言 > 正文

Android中SlidingDrawer介绍

转载出处:http:blog.csdn.netwdaming1986articledetails6898374安卓中1.5后加入了SlidingDrawer【隐藏式抽

 转载出处:

 http://blog.csdn.net/wdaming1986/article/details/6898374

安卓中1.5后加入了SlidingDrawer【隐藏式抽屉】,设计原理在你的UI布局有限的情况下,放不下太多的控件的时候,可以考虑用这个隐藏式抽屉。用SlidingDrawer注意两点,一个是android:handle(委托要展开的图片加载Layout配置) 和android:content(要展开的Layout Content)。

下面看程序截图:

                 程序开始界面:

      

点击右边的箭头后出现的界面:

在SlidingDrawerActivity工程下:

一、在com.cn.daming包下的SlidingDrawerMainActivity.java类中的代码:

1 public class SlidingDrawerMainActivity extends Activity {
2
3 private GridView gridView;
4 private SlidingDrawer slidingDrawer;
5 private ImageView imageView;
6 private TextView textview;
7 private int[] icons={
8 R.drawable.title1, R.drawable.title2,
9 R.drawable.title3, R.drawable.title4,
10 R.drawable.title5, R.drawable.title6
11 };
12
13 private String[] items={
14 "Phone", "Message", "AddImage", "Music", "Telephone", "SMS"
15 };
16
17 @Override
18 public void onCreate(Bundle savedInstanceState) {
19 super.onCreate(savedInstanceState);
20 setContentView(R.layout.main);
21 gridView = (GridView)findViewById(R.id.mycontent);
22 slidingDrawer = (SlidingDrawer)findViewById(R.id.sliding_drawer);
23 imageView = (ImageView)findViewById(R.id.my_image);
24 textview = (TextView)findViewById(R.id.text_view);
25 MyGridViewAdapter adapter = new MyGridViewAdapter(this, items, icons);
26 gridView.setAdapter(adapter);
27 gridView.setOnItemClickListener(new OnItemClickListener() {
28
29 @Override
30 public void onItemClick(AdapterView parent, View view,
31 int position, long id) {
32 Log.e("yxc", "position = " + position);
33 }
34
35 });
36 slidingDrawer.setOnDrawerOpenListener(new SlidingDrawer.OnDrawerOpenListener() {
37
38 public void onDrawerOpened() {
39 textview.setVisibility(View.GONE);
40 imageView.setImageResource(R.drawable.down1);
41 }
42 });
43 slidingDrawer.setOnDrawerCloseListener(new SlidingDrawer.OnDrawerCloseListener() {
44
45 public void onDrawerClosed() {
46 textview.setVisibility(View.VISIBLE);
47 imageView.setImageResource(R.drawable.up1);
48 }
49 });
50 }
51
52 @Override
53 public void onConfigurationChanged(Configuration newConfig) {
54 super.onConfigurationChanged(newConfig);
55 }
56 }

二、在com.cn.daming包下的MyGridViewAdapter.java类中的代码:

public class MyGridViewAdapter extends BaseAdapter{private Context context;private String[] items;private int[] icons;public MyGridViewAdapter(Context context, String[] items, int[] icons){this.context = context;this.items = items;this.icons = icons;}public int getCount() {return items.length;}public Object getItem(int arg0) {return items[arg0];}public long getItemId(int position) {return position;}public View getView(int position, View convertView, ViewGroup parent) {LayoutInflater layoutInflater = LayoutInflater.from(context);View view = (View)layoutInflater .inflate(R.layout.grid, null);ImageView imageView = (ImageView)view.findViewById(R.id.image_view);TextView textview = (TextView)view.findViewById(R.id.text_view);imageView.setImageResource(icons[position]);textview.setText(items[position]);return view;}}

三、在res包下的layout下的main.xml中的代码:

1 xml version="1.0" encoding="utf-8"?>
2 <RelativeLayout xmlns:android&#61;"http://schemas.android.com/apk/res/android"
3 android:layout_width&#61;"fill_parent"
4 android:layout_height&#61;"fill_parent"
5 >
6 <TextView
7 android:id&#61;"&#64;&#43;id/text_view"
8 android:layout_width&#61;"fill_parent"
9 android:layout_height&#61;"wrap_content"
10 android:layout_marginTop&#61;"10dip"
11 android:text&#61;"&#64;string/hello"
12 android:textSize&#61;"10pt"
13 android:gravity&#61;"center"
14 />
15 <SlidingDrawer
16 android:id&#61;"&#64;&#43;id/sliding_drawer"
17 android:layout_width&#61;"fill_parent"
18 android:layout_height&#61;"fill_parent"
19 android:handle&#61;"&#64;&#43;id/layout1"
20 android:content&#61;"&#64;&#43;id/mycontent"
21 android:orientation&#61;"vertical"
22 >
23 <LinearLayout
24 android:id&#61;"&#64;id/layout1"
25 android:layout_width&#61;"fill_parent"
26 android:layout_height&#61;"35px"
27 android:gravity&#61;"center"
28 android:background&#61;"#00000000"
29 >
30 <ImageView
31 android:id&#61;"&#64;&#43;id/my_image"
32 android:layout_width&#61;"wrap_content"
33 android:layout_height&#61;"wrap_content"
34 android:src&#61;"&#64;drawable/up1"
35 />
36 LinearLayout>
37 <GridView
38 android:id&#61;"&#64;id/mycontent"
39 android:layout_width&#61;"wrap_content"
40 android:layout_height&#61;"wrap_content"
41 android:paddingTop&#61;"20dip"
42 android:numColumns&#61;"3"
43 android:gravity&#61;"center"
44 android:background&#61;"#ff000000"
45 />
46 SlidingDrawer>
47 RelativeLayout>

四、在res包下的layout下的grid.xml中的代码&#xff1a;

1 xml version&#61;"1.0" encoding&#61;"utf-8"?>
2 <LinearLayout xmlns:android&#61;"http://schemas.android.com/apk/res/android"
3 android:layout_width&#61;"fill_parent"
4 android:layout_height&#61;"fill_parent"
5 android:orientation&#61;"vertical"
6 >
7 <ImageView
8 android:id&#61;"&#64;&#43;id/image_view"
9 android:layout_width&#61;"wrap_content"
10 android:layout_height&#61;"wrap_content"
11 android:layout_marginBottom&#61;"5dip"
12 android:layout_marginLeft&#61;"27dip"
13 />
14 <TextView
15 android:id&#61;"&#64;&#43;id/text_view"
16 android:layout_width&#61;"wrap_content"
17 android:layout_height&#61;"wrap_content"
18 android:layout_marginBottom&#61;"15dip"
19 android:layout_marginLeft&#61;"27dip"
20 />
21 LinearLayout>

 

补充说明&#xff1a;

也可以设置垂直的隐藏拉抽屉方式&#xff0c;设置SlidingDrawer中的android:orientation&#61;"vertical"。

看下截图效果&#xff1a;

                     点击下拉图标后界面&#xff1a;                                                          点击上拉图标后的界面&#xff1a;

                                        

 

完整代码下载链接地址&#xff1a;http://download.csdn.net/detail/wdaming1986/3731750

 

 

转:https://www.cnblogs.com/oasis2008/archive/2012/07/19/2598928.html



推荐阅读
  • 带添加按钮的GridView,item的删除事件
    先上图片效果;gridView无数据时显示添加按钮,有数据时,第一格显示添加按钮,后面显示数据:布局文件:addr_manage.xml<?xmlve ... [详细]
  • Android开发实现的计时器功能示例
    本文分享了Android开发实现的计时器功能示例,包括效果图、布局和按钮的使用。通过使用Chronometer控件,可以实现计时器功能。该示例适用于Android平台,供开发者参考。 ... [详细]
  • android listview OnItemClickListener失效原因
    最近在做listview时发现OnItemClickListener失效的问题,经过查找发现是因为button的原因。不仅listitem中存在button会影响OnItemClickListener事件的失效,还会导致单击后listview每个item的背景改变,使得item中的所有有关焦点的事件都失效。本文给出了一个范例来说明这种情况,并提供了解决方法。 ... [详细]
  • 后台获取视图对应的字符串
    1.帮助类后台获取视图对应的字符串publicclassViewHelper{将View输出为字符串(注:不会执行对应的ac ... [详细]
  • 拥抱Android Design Support Library新变化(导航视图、悬浮ActionBar)
    转载请注明明桑AndroidAndroid5.0Loollipop作为Android最重要的版本之一,为我们带来了全新的界面风格和设计语言。看起来很受欢迎࿰ ... [详细]
  • Go GUIlxn/walk 学习3.菜单栏和工具栏的具体实现
    本文介绍了使用Go语言的GUI库lxn/walk实现菜单栏和工具栏的具体方法,包括消息窗口的产生、文件放置动作响应和提示框的应用。部分代码来自上一篇博客和lxn/walk官方示例。文章提供了学习GUI开发的实际案例和代码示例。 ... [详细]
  • 本文介绍了一款名为TimeSelector的Android日期时间选择器,采用了Material Design风格,可以在Android Studio中通过gradle添加依赖来使用,也可以在Eclipse中下载源码使用。文章详细介绍了TimeSelector的构造方法和参数说明,以及如何使用回调函数来处理选取时间后的操作。同时还提供了示例代码和可选的起始时间和结束时间设置。 ... [详细]
  • 今天就跟大家聊聊有关怎么在Android应用中实现一个换肤功能,可能很多人都不太了解,为了让大家更加了解,小编给大家总结了以下内容,希望大家根 ... [详细]
  • 在Android开发中,使用Picasso库可以实现对网络图片的等比例缩放。本文介绍了使用Picasso库进行图片缩放的方法,并提供了具体的代码实现。通过获取图片的宽高,计算目标宽度和高度,并创建新图实现等比例缩放。 ... [详细]
  • 《数据结构》学习笔记3——串匹配算法性能评估
    本文主要讨论串匹配算法的性能评估,包括模式匹配、字符种类数量、算法复杂度等内容。通过借助C++中的头文件和库,可以实现对串的匹配操作。其中蛮力算法的复杂度为O(m*n),通过随机取出长度为m的子串作为模式P,在文本T中进行匹配,统计平均复杂度。对于成功和失败的匹配分别进行测试,分析其平均复杂度。详情请参考相关学习资源。 ... [详细]
  • 深入理解CSS中的margin属性及其应用场景
    本文主要介绍了CSS中的margin属性及其应用场景,包括垂直外边距合并、padding的使用时机、行内替换元素与费替换元素的区别、margin的基线、盒子的物理大小、显示大小、逻辑大小等知识点。通过深入理解这些概念,读者可以更好地掌握margin的用法和原理。同时,文中提供了一些相关的文档和规范供读者参考。 ... [详细]
  • 在Xamarin XAML语言中如何在页面级别构建ControlTemplate控件模板
    本文介绍了在Xamarin XAML语言中如何在页面级别构建ControlTemplate控件模板的方法和步骤,包括将ResourceDictionary添加到页面中以及在ResourceDictionary中实现模板的构建。通过本文的阅读,读者可以了解到在Xamarin XAML语言中构建控件模板的具体操作步骤和语法形式。 ... [详细]
  • 本文介绍了在MFC下利用C++和MFC的特性动态创建窗口的方法,包括继承现有的MFC类并加以改造、插入工具栏和状态栏对象的声明等。同时还提到了窗口销毁的处理方法。本文详细介绍了实现方法并给出了相关注意事项。 ... [详细]
  • 本文详细介绍了Android中的坐标系以及与View相关的方法。首先介绍了Android坐标系和视图坐标系的概念,并通过图示进行了解释。接着提到了View的大小可以超过手机屏幕,并且只有在手机屏幕内才能看到。最后,作者表示将在后续文章中继续探讨与View相关的内容。 ... [详细]
  • Sleuth+zipkin链路追踪SpringCloud微服务的解决方案
    在庞大的微服务群中,随着业务扩展,微服务个数增多,系统调用链路复杂化。Sleuth+zipkin是解决SpringCloud微服务定位和追踪的方案。通过TraceId将不同服务调用的日志串联起来,实现请求链路跟踪。通过Feign调用和Request传递TraceId,将整个调用链路的服务日志归组合并,提供定位和追踪的功能。 ... [详细]
author-avatar
儿双全id
这个家伙很懒,什么也没留下!
PHP1.CN | 中国最专业的PHP中文社区 | DevBox开发工具箱 | json解析格式化 |PHP资讯 | PHP教程 | 数据库技术 | 服务器技术 | 前端开发技术 | PHP框架 | 开发工具 | 在线工具
Copyright © 1998 - 2020 PHP1.CN. All Rights Reserved | 京公网安备 11010802041100号 | 京ICP备19059560号-4 | PHP1.CN 第一PHP社区 版权所有