其实就是在显示菜单栏时,有个动画的效果。代码比较简单,下面进行说明。

1.效果图如下,手机上查看效果更佳

2.代码实现,这里只讲解动画效果的实现,具体代码可在源代码中查看

<1> 先定义一个CanvasTransformer接口对象,这个接口是在slidingmenu_library类库中封装好的

private CanvasTransformer mTransformer; 

<2> 然后再实例化此接口,重写接口中的方法,例如示例1中的方法:

/*** transformCanvas(Canvas canvas, float percentOpen) * ① Canvas  canvas:画布类; * ② float percentOpen:滑动菜单栏打开时的百分比值。*/mTransformer = new CanvasTransformer() {@Overridepublic void transformCanvas(Canvas canvas, float percentOpen) {float scale = (float) (percentOpen * 0.25 + 0.75);canvas.scale(scale, scale, canvas.getWidth() / 2,canvas.getHeight() / 2);}};

<3> 最后在把实例化的接口对象赋给SlidingMenu类中的setBehindCanvasTransformer()方法:

getSlidingMenu().setBehindCanvasTransformer(mTransformer);

<4>这样就完成了动画效果的实现,下面是示例1的主界面代码,其他的有兴趣的朋友可以查看源代码

package com.yanis.anima;import android.graphics.Canvas;
import android.os.Bundle;
import com.jeremyfeinstein.slidingmenu.lib.SlidingMenu;
import com.jeremyfeinstein.slidingmenu.lib.SlidingMenu.CanvasTransformer;
import com.jeremyfeinstein.slidingmenu.lib.app.SlidingFragmentActivity;/*** * @author Yanis* @Description 滑动时缩放的效果*/
public class FirstActivity extends SlidingFragmentActivity {private CanvasTransformer mTransformer;@Overridepublic void onCreate(Bundle savedInstanceState) {super.onCreate(savedInstanceState);initAnimation();initSlidingMenu();getActionBar().setDisplayHomeAsUpEnabled(true);}/*** 初始化滑动菜单*/private void initSlidingMenu() {// 设置主界面视图
        setContentView(R.layout.layout_right);// 设置滑动菜单视图
        setBehindContentView(R.layout.layout_left);// 设置滑动菜单的属性值SlidingMenu sm = getSlidingMenu();// 根据dimension资源文件的ID来设置下方视图的偏移量,此处是220dp
        sm.setBehindOffsetRes(R.dimen.slidingmenu_offset);sm.setFadeDegree(0.35f);sm.setTouchModeAbove(SlidingMenu.TOUCHMODE_FULLSCREEN);sm.setBehindScrollScale(0.0f);sm.setBehindCanvasTransformer(mTransformer);setSlidingActionBarEnabled(true);}/*** 初始化动画效果*/private void initAnimation() {/*** transformCanvas(Canvas canvas, float percentOpen) * ① Canvas  canvas:画布类; * ② float percentOpen:滑动菜单栏打开时的百分比值。*/mTransformer = new CanvasTransformer() {@Overridepublic void transformCanvas(Canvas canvas, float percentOpen) {float scale = (float) (percentOpen * 0.25 + 0.75);canvas.scale(scale, scale, canvas.getWidth() / 2,canvas.getHeight() / 2);}};}
}

源代码地址:https://github.com/YeXiaoChao/Yc_ui_slidingmenu_anima

本文地址:http://www.cnblogs.com/yc-755909659/p/4311173.html

来源文章:http://blog.csdn.net/yangyu20121224/article/details/9262931

【Android UI设计与开发】10:滑动菜单栏(二)SlidingMenu 动画效果的实现相关推荐

  1. 【Android UI设计与开发】9:滑动菜单栏(一)开源项目SlidingMenu的使用和示例-转...

    一.SlidingMenu简介 相信大家对SlidingMenu都不陌生了,它是一种比较新的设置界面或配置界面的效果,在主界面左滑或者右滑出现设置界面效果,能方便的进行各种操作.很多优秀的应用都采用了 ...

  2. 【Android UI设计与开发】第02期:引导界面(二)使用ViewPager实现欢迎引导页面

    转载请注明出处:http://blog.csdn.net/yangyu20121224/article/details/8980917 本系列文章都会以一个程序的实例开发为主线来进行讲解,以求达到一个 ...

  3. android ui设计与开发工具,Android用户体验与UI设计

    Android用户体验与UI设计 编辑 锁定 讨论 上传视频 本词条缺少概述图,补充相关内容使词条更完整,还能快速升级,赶紧来编辑吧! 本书是一部介绍Android用户体验.UI设计理念和方法论的作品 ...

  4. Android UI设计与开发】第03期:引导界面(三)仿微信引导界面以及动画效果

    转载请注明出处:http://blog.csdn.net/yangyu20121224/article/details/8985457        基于前两篇比较简单的实例做铺垫之后,这一篇我们来实 ...

  5. 【Android UI设计与开发】第16期:滑动菜单栏(一)

    这期博主要给大家带来的是关于滑动菜单栏的实现效果. 一.SlidingMenu简介 相信大家对SlidingMenu都不陌生了,它是一种比较新的设置界面或配置界面的效果,在主界面左滑或者右滑出现设置界 ...

  6. 【Android UI设计与开发】第06期:底部菜单栏(一)使用TabActivity实现底部菜单栏

    转载请注明出处:http://blog.csdn.net/yangyu20121224/article/details/8989063       从这一篇文章开始,我们将进入到一个应用程序主界面UI ...

  7. 【Android UI设计与开发】第01期:引导界面(一)ViewPager介绍和使用详解

    转载请注明出处:http://blog.csdn.net/yangyu20121224/article/details/8980917 做Android开发加起来差不多也有一年多的时间了,总是想写点自 ...

  8. 【Android UI设计与开发】第05期:引导界面(五)实现应用程序只启动一次引导界面

    转载请注明出处:http://blog.csdn.net/yangyu20121224/article/details/8987342  这篇文章算是对整个引导界面开发专题的一个终结了吧,个人觉得大部 ...

  9. 【Android UI设计与开发】第04期:引导界面(四)仿人人网V5.9.2最新版引导界面

    转载请注明出处:http://blog.csdn.net/yangyu20121224/article/details/8988147      这一篇我将会以人人网的引导界面为实例来展开详细的讲解, ...

  10. 【Android UI设计与开发】第09期:底部菜单栏(四)Fragment+PopupWindow仿QQ空间最新版底部菜单栏

    转载请注明出处:http://blog.csdn.net/yangyu20121224/article/details/9023451          在今天的这篇文章当中,我依然会以实战加理论结合 ...

最新文章

  1. 真·机械朋克!物理学家用扬声器搭建神经网络,登上今日Nature
  2. C#协变和逆变 - 译
  3. 统计123出现次数_如何使用 count 统计词条出现次数?
  4. “奶茶第一股”香飘飘,“香”不起来了?
  5. 数据库mysql是什么?win10如何安装使用mysql?
  6. 第2章 数据库系统体系结构
  7. 整点小浪漫~Python27行代码绘制一幅满天星
  8. 计算机网络综合布线课设,中职计算机网络综合布线课程改革与思考
  9. 【Android 逆向】脱壳解决方案 ( DEX 整体加壳 | 函数抽取加壳 | VMP 加壳 | Dex2C 加壳 | Android 应用加固防护级别 )
  10. mil mm 单位换算
  11. win7win8 64位汇编开发环境合集安装与设置
  12. tomcat启动报错 exception_access_violation(0x0000005) at pc=0x000000006d9f904
  13. matlab百分号是什么意思,matlab 两个百分号
  14. 2021年中式面点师(中级)最新解析及中式面点师(中级)模拟考试题库
  15. syntax error: unexpected :=解决方案
  16. js json字符串 转为json数组
  17. 「自然语言处理(NLP)」入门系列(一)初识NLP
  18. IPv5 发生了什么?为什么有 IPv4、IPv6 但没有 IPv5?
  19. HDU4466 Triangle 计数 容斥原理
  20. No Debug UInit Device found 问题解决

热门文章

  1. apk破解工具介绍与使用
  2. AudFree Tidable Music Converter for Mac - 音乐格式转换软件
  3. 剪映专业版mac版本要求 剪映mac版最新版更新
  4. NoteBurner Spotify教程:在Mac上将 Spotify 音乐转换为 MP3 格式
  5. Android属性动画初探之ObjectAnimator
  6. Vue指令之v-html
  7. EasyRecovery软件在win10系统中的功能及使用方法介绍(附注册机下载地址)
  8. php面向对象特性(一)
  9. 绿盟科技:“无敌舰队”DDoS勒索防御关键是应急经验积累
  10. ReactiveSwift源码解析(二) Bag容器的代码实现