现在的位置: 首页 > 综合 > 正文

【Android UI设计与开发】第17期:滑动菜单栏(二)开源项目SlidingMenu的示例

2013年05月18日 ⁄ 综合 ⁄ 共 3711字 ⁄ 字号 评论关闭

通过上一篇文章的讲解,相信大家对于开源项目SlidingMenu都有了一个比较初步的了解(不了解的可以参考上

一篇文章),那么从这一章开始,博主将会以SlidingMenu为重心,给大家带来非常丰富的示例演示,让大家对

SlidingMenu有一个更加深入的了解以及如何去实现一些比较炫的滑动效果。

              这篇文章会给大家带来7个不同效果的示例,每个示例都包含了最基本的使用方法,从易到难,循序渐进。能够

让初学者可以快速的掌握SlidingMenu的使用方法。下一篇文章会给大家带来三种不同的动画效果来实现滑动菜单栏

的滑动。

         关于这些示例,都是SlidingMenu开源项目中自带的一些示例,但是对于初学者来说,要想运行这些示例查看效

果,就必须要导入很多的库,使用起来也是非常的麻烦。博主这里为了能够方便大家更好的学习,就把每个示例都单

独拿了出来,并且添加了一些非常详细的注释,让初学者能够一看就懂,那么博主的目的就达到了。

         好的,话不多说,希望大家能够继续支持!

 

一、示例效果图

 

        先上效果图是博主一贯的作风,这样做可以让大家对于效果的实现有一个大概的了解,可以从中得到自己想要去

实现的效果。

 

1、示例一效果图

 

该示例主要是演示通过改变不同的值来改变滑动菜单不同的效果,可以设置的值有:

<1> 设置滑动菜单显示的位置(左边、右边或者左右两边都有);

<2> 设置触摸屏幕的模式(全屏触摸打开滑动菜单、边缘触摸打开滑动菜单或者触摸不能打开滑动菜单);

<3> 设置滑动菜单滑动时缩放的效果以及关闭此效果(值越大效果越明显);

<4> 设置滑动菜单滑动时的阴影效果以及关闭此效果(值越大效果越明显);

<5> 设置滑动菜单滑动时渐入渐出的效果(值越大效果越明显)。

                             效果图一                                                                                                      效果图二

                                  

 

2、示例二效果图

 

该示例主要就是教大家实现一个简单的放置在左边滑动菜单栏的效果。

                                    效果图一

 

3、示例三效果图

 

该示例实现了在左右两边存放两个视图,并且都可以通滑动屏幕来打开。

                

 

4、示例四效果图

 

该示例主要演示了通过Fragment来改变主视图的界面内容。

                

 

5、示例五效果图

 

      该示例也是通过Fragment来改变主视图的界面内容,但不同的是列表中存放的是图片,并且点击列表图片之后会

经过压缩显示出来。                                      

                        

 

                                                                         

 

6、示例六效果图

 

在该示例中使用ViewPager这个类,将多个Fragment存放在viewpager中,并在主界面视图内容中显示出来。

                                                           效果图一                                                                                                                                               效果图二

             

 

7、示例七效果图

 

          该示例主要演示了当触摸屏幕滑动时,上面的标题栏TitleBar并不会跟随着一起滑动,滑动的只是中间的内容视图。(印象笔记实现了此效果)

 

二、代码讲解

 

        由于示例比较多,所以博主我就不对每个示例的代码一一进行讲解了,这里就挑一个最基础的示例给大家讲解一

下。在文章的末尾,我会把所有的示例打包供大家下载学习,里面有一些详细的注释,相信大家能一看就懂。

 

1、项目结构图

 

 

2、content_frame.xml布局

         我们先从布局文件开始讲起,这里为什么要定义一个content_frame.xml呢?主要是为了定义一个虚拟的视图,方便Fragment能够替换该视图,以达到Fragment的视图内容能够显示在屏幕上的效果。

[html] view
plain
copy

  1. <?xml version="1.0" encoding="utf-8"?>  
  2. <FrameLayout xmlns:android="http://schemas.android.com/apk/res/android"  
  3.     android:id="@+id/content_frame"  
  4.     android:layout_width="match_parent"  
  5.     android:layout_height="match_parent" />  


大家可以看到这里就定义了一个FrameLayout布局,在给它附上一个id,以至于在系统中可以找到该布局对象。
       

3、menu_frame.xml布局

这个布局文件是用来存放滑动菜单打开后的视图界面的。

[html] view
plain
copy

  1. <?xml version="1.0" encoding="utf-8"?>  
  2. <FrameLayout xmlns:android="http://schemas.android.com/apk/res/android"  
  3.     android:id="@+id/menu_frame"  
  4.     android:layout_width="match_parent"  
  5.     android:layout_height="match_parent" />  

 

4、list.xml

这个list布局文件会在ListFragment中用到。

[html] view
plain
copy

  1. <?xml version="1.0" encoding="utf-8"?>  
  2. <ListView xmlns:android="http://schemas.android.com/apk/res/android"  
  3.     android:id="@android:id/list"  
  4.     android:layout_width="match_parent"  
  5.     android:layout_height="match_parent"  
  6.     android:paddingLeft="@dimen/list_padding"  
  7.     android:paddingRight="@dimen/list_padding" />  

 

5、row.xml

用于存放列表中的图片和文本。

[html] view
plain
copy

  1. <?xml version="1.0" encoding="utf-8"?>  
  2. <LinearLayout xmlns:android="http://schemas.android.com/apk/res/android"  
  3.     android:layout_width="match_parent"  
  4.     android:layout_height="50dp"  
  5.     android:orientation="horizontal" >  
  6.   
  7.     <ImageView  
  8.         android:id="@+id/row_icon"  
  9.         android:layout_width="50dp"  
  10.         android:layout_height="50dp"  
  11.         android:padding="10dp"  
  12.         android:src="@drawable/ic_launcher" />  
  13.   
  14.     <TextView  
  15.         android:id="@+id/row_title"  
  16.         android:layout_width="0dp"  
  17.         android:layout_height="match_parent"  
  18.         android:layout_weight="1"  
  19.         android:gravity="center_vertical"  
  20.         android:padding="10dp"  
  21.         android:text=

抱歉!评论已关闭.