Android 3D滑动菜单实现及源代码

Android 3D滑动菜单实现及源代码

ID:40748444

大小:962.00 KB

页数:20页

时间:2019-08-07

Android 3D滑动菜单实现及源代码_第1页
Android 3D滑动菜单实现及源代码_第2页
Android 3D滑动菜单实现及源代码_第3页
Android 3D滑动菜单实现及源代码_第4页
Android 3D滑动菜单实现及源代码_第5页
资源描述:

《Android 3D滑动菜单实现及源代码》由会员上传分享,免费在线阅读,更多相关内容在行业资料-天天文库

1、Android3D滑动菜单完全解析,实现推拉门式的立体特效在上一篇文章中,我们学习了Camera的基本用法,并借助它们编写了一个例子,实现了类似于APIDemos里的图片中轴旋转功能。不过那个例子的核心代码是来自于APIDemos中带有的Rotate3dAnimation这个类,是它帮助我们完成了所有的三维旋转操作,所有Matrix和Camera相关的代码也是封装在这个类中。这样说来的话,大家心里会不会痒痒的呢?虽然学习了Camera的用法,但却没有按照自己的理解来实现一套非常炫酷的3D效果。不要着急,今天我就带着

2、大家一起来实现一种3D推拉门式的滑动菜单,而且完全不会借助任何APIDemos里面的代码。当然如果你还不是很了解Camera的使用方式,可以先去阅读我的上一篇文章 Android中轴旋转特效实现,制作别样的图片浏览器 。关于滑动菜单的文章我也已经写过好几篇了,相信看过的朋友对滑动菜单的实现方式应该都已经比较熟悉了,那么本篇文章的重点就在于,如何在传统滑动菜单的基础上加入推拉门式的立体效果。还不了解滑动菜单如何实现的朋友,可以去翻一翻我之前的文章。说到这里我必须要吐槽一下了,最近发现有不少的网站和个人将我的文章恶意转

3、走,而且还特意把第一行的原文地址信息去除掉。更可气的是,在百度上搜索我文章的标题时,竟然先找到的是那些转载我文章的网站。唉,伤心了,看来还是谷歌比较正常。因此今天我也是在这里特别申明一下,我所写的所有文章均是首发于CSDN博客,如果你阅读这篇文章时是在别的网站,那么你将无法找到我前面所写的关于传统滑动菜单的文章,而且你的疑问和留言也将得不到解答。下面还是回到正题,首先来讲一下这次的实现原理吧,其实传统的滑动菜单功能就是把菜单部分放在了下面,主布局放在了上面,然后根据手指滑动的距离来偏移主布局,让菜单部分得以显示出来

4、就行了。不过我们这次既然要做推拉门式的立体效果,就需要将传统的思维稍微转变一下,可以先让菜单部分隐藏掉,但却复制一个菜单的镜像并生成一张图片,然后在手指滑动的时候对这张图片进行三维操作,让它产生推拉门式的效果,等滑动操作结束的时候,才让真正的菜单显示出来,然后将这个图片隐藏。原理示意图如下所示:                    那么下面我们就开始动手实现吧,首先新建一个Android项目,起名叫做ThreeDSlidingLayoutDemo。然后新建一个Image3dView类继承自View,用于生成镜像图

5、片,以及完成三维操作,代码如下所示:[java] viewplaincopy1.public class Image3dView extends View {  2.  3.    /** 4.     * 源视图,用于生成图片对象。 5.     */  6.    private View sourceView;  7.  8.    /** 9.     * 根据传入的源视图生成的图片对象。 10.     */  11.    private Bitmap sourceBitmap;  12.  13.  

6、  /** 14.     * 源视图的宽度。 15.     */  16.    private float sourceWidth;  1.  2.    /** 3.     * Matrix对象,用于对图片进行矩阵操作。 4.     */  5.    private Matrix matrix = new Matrix();  6.  7.    /** 8.     * Camera对象,用于对图片进行三维操作。 9.     */  10.    private Camera camera = n

7、ew Camera();  11.  12.    /** 13.     * Image3dView的构造函数 14.     *  15.     * @param context 16.     * @param attrs 17.     */  18.    public Image3dView(Context context, AttributeSet attrs) {  19.        super(context, attrs);  20.    }  21.  22.    /** 23.  

8、   * 提供外部接口,允许向Image3dView传入源视图。 24.     *  25.     * @param view 26.     *            传入的源视图 27.     */  28.    public void setSourceView(View view) {  29.        sourceView = vie

当前文档最多预览五页,下载文档查看全文

此文档下载收益归作者所有

当前文档最多预览五页,下载文档查看全文
温馨提示:
1. 部分包含数学公式或PPT动画的文件,查看预览时可能会显示错乱或异常,文件下载后无此问题,请放心下载。
2. 本文档由用户上传,版权归属用户,天天文库负责整理代发布。如果您对本文档版权有争议请及时联系客服。
3. 下载前请仔细阅读文档内容,确认文档内容符合您的需求后进行下载,若出现内容与标题不符可向本站投诉处理。
4. 下载文档时可能由于网络波动等原因无法下载或下载错误,付费完成后未能成功下载的用户请联系客服处理。