Android之场景桌面(一)
声明:转载请务必注明出处,本文代码和主题仅供学习交流,请勿用于商业用途。
引言:最近Android场景桌面开始流行起来了,跟原始的Android桌面相比,场景桌面能逼真的模拟各种自然物体,并且通过点击这些自然物体能进入对应的应用,这大大的丰富、美观了我们心爱的手机桌面,偶尔体验一下,也不枉是一种享受。但这享受的前提是:这个场景桌面必须非常稳定、流畅、主题丰富等。因此,作为开发者而言,任重而道远啊。。。
好了,废话不多说,进入正题,下面我就站在个人开发者的角度,简单的模仿和分析一下场景桌面的设计流程,后续系列文章再为大家详细分解各个模块的功能和实现,敬请期待
。首先,还是先来看看效果吧!无图无真相是吧?呵呵~下面两张图片,是两个主题对应的桌面。
正文分析:如上图所示,简单的场景桌面大概有3、4页主背景(具体由主题而定),可左右滑动,每个背景页上摆放着各种拟物化的应用小图标,同时为了使桌面"动"起来,我们可在一些小图标中加入动画,比如说上图一中粉色的小浣熊拿着照相机在闪闪光灯,也许你就想到,点击这个相机应该是进入到相机应用了,而且会使桌面更加灵活生动。
从界面方面,我们就只能分析到这里了,下面我们从代码方面作一下简单分析,我们先来看看代码结构:
从代码结构中,我们就知道,这是一个很简单的应用,总共才4个包:
①.com.way.bean:应该不用多说,学过Java的都知道,我这里只有一个类,从安卓原生的Launcher中移植过来的,即应用信息ApplicationInfo.java。
②.com.way.launcher:这里放Application和Activity等类,属于应用的核心部分了,其实主体思路和架构也是来自原生Launcher,只是为了切换我们的需求,改成对应的了。
③.com.way.util:这里放的是工具类,主要是解析xml文件的工具类,为了让我们的桌面能使用各种主题,我们就会很轻易的想到使用xml文件作配置,比如assets目录下的scene_layout.xml文件,就是对应主题的所有配置:桌面背景页、每一页对应的应用图标坐标值、每个应用图标对应的入口、还有某些特定图标的动画等。我们通过解析这个文件,就可以把对应主题drawable目录下的图片准确无误的显示在用户的桌面上。
④.com.way.view:这个包下放了所有我们需要用到的自定义View,本代码中所有自定义View均在来自Android原生系统framework下、原生Launcher应用以及一些开源项目。比如说AnalogClock.java、NumberClock.java等来自framework下,PagedView.java、PagedViewCellLayout.java等来自原生Launcher,PageIndicator.java、TitlePageIndicator.java来自开源项目。所以说,其实做Android项目基本上就是Ctrl+c、Ctrl+v了,真正我写的自定义View就是SceneImageView.java和PagedViewIcon.java,主要是实现了点击图片变暗的点击效果。
⑤.assets目录:这个目录下放的是一套默认的主题,虽然我们的应用支持更换主题,但是,主题资源必须放在SD卡根目录下的,需要单独下载,因为内置在应用中是相当不明智的,会造成编译出来的apk相当大。而且有的用户不一定每个主题都喜欢,所以,为了能够使用更多主题,单独存放主题资源是相当有必要的。
接下来的res目录等,我就不具体分析了,相信做过Android开发的朋友都能看懂。
OK,场景桌面粗略分析就到这里了,欲知后事如何,请听下回分解,O(∩_∩)O哈哈~
源代码奉上:http://download.csdn.net/detail/weidi1989/6197113
7个主题打包奉上:http://download.csdn.net/detail/weidi1989/6197099
(注意:①.本代码为utf-8编码,基于eclipse工程打包,支持3.0以上手机运行,如遇奇葩问题,请留言。
②.本主题为适配480x800手机设计,大屏或小屏手机可能会出现不适配情况,接口也均仅适应本手机,如遇点击应用图标提示未安装此应用,需要更改scene_layout.xml文件中的接口,后续将详细讲解。
③.主题包中有一篇主题设计规范文档,供有兴趣的朋友设计更多的主题,也欢迎有新主题邮件我,3Q。
④.本代码和主题资源仅供学习交流,请勿用于商业用途,否则后果自负。
)
Android之场景桌面(一)的更多相关文章
- android如何添加桌面图标和卸载程序后自动删除图标
android如何添加桌面图标和卸载程序后自动删除桌面图标,这是一个应用的安装与卸载过程对桌面图标的操作,下面与大家分享下具体是如何实现的,感兴趣的朋友可以参考下哈 1:创建图标如下 Intent i ...
- Android 点击桌面快捷方式和Notifycation跳转到Task栈顶Activity
我们一般下载的应用在第一次启动应用的时候都会给我创建一个桌面快捷方式,然后我在网上找了些资料整理下了,写了一个快捷方式的工具类,这样我们以后要创建快捷方式的时候直接拷贝这个类,里面提供了一些静态方法, ...
- android 点击桌面图标,打开手机浏览器进入对应的站点
做一个假的adnroid app.要实现点击桌面图标.打开手机浏览器进入对应的站点,实现方法非常easy import android.app.Activity; import android.con ...
- 【转】Android Studio开发应用桌面出现两个或多个图标
原文链接:http://blog.csdn.net/jia635/article/details/78259699 解决办法: 查找的是不是自己的AndroidManifest中 多个Activity ...
- Android AR场景拍照技术实现(有关键源代码)
ARVR技术交流群:129340649 欢迎增加. AR场景往往给别人留下的印象深刻,假设模型做的炫丽一点,效果将会更好. 那么怎样保存这一美好的情景呢?这篇文章将教你怎样实现AR场景的拍摄以及永久保 ...
- Android中的桌面快捷方式
一.判断是否已有快捷方式 private String getAuthorityFromPermission(Context context, String permission){ if (perm ...
- Ubuntu中给eclipse和android studio添加桌面快捷图标
Ubuntu 12.04 创建应用程序启动项(可在Unity LaucherPad显示) http://www.cnblogs.com/bluestorm/archive/2012/10/12/272 ...
- Android 如何去除桌面上下边框暗度逐渐变暗的效果
前言 欢迎大家我分享和推荐好用的代码段~~ 声明 欢迎转载,但请保留文章原始出处: CSDN:http://www.csdn.net ...
- Android 仿360桌面小人
首先自定义FloatsWindowView,用于显示动画小人. import android.annotation.SuppressLint; import android.content.Conte ...
随机推荐
- Basic4android:多功能的Android应用软件快速开发平台
Basic4android 是目前最简单.最强大的Android平台快速应用开发工具. ( "Basic4android is the simplest and most powerful ...
- ASP.NET - JQuery的.getJSON给Dropdownlist绑定Item
http://www.cnblogs.com/Mac_Hui/archive/2010/07/27/1785864.html 1.首先建立以个.ashx文件(Generic Handler),在此文件 ...
- 为数据元素DATA Element分配搜索帮助
搜索帮助可以分配给数据元素,程序中可以直接参照该数据元素具体如下: 1. 2. 程序中使用. PARAMETERS:p_vbeln TYPE ZVBELN_01. 3. 效果:
- 后台调用外部程序的完美实现(使用CreateDesktop建立隐藏桌面)
最近在做的一个软件,其中有一部分功能需要调用其它的软件来完成,而那个软件只有可执行文件,根本没有源代码,幸好,我要做的事不难,只需要在我的程序启动后,将那个软件打开,在需要的时候,对其中的一个文本矿设 ...
- 【ASP.NET Web API教程】2.3.5 用Knockout.js创建动态UI
原文:[ASP.NET Web API教程]2.3.5 用Knockout.js创建动态UI 注:本文是[ASP.NET Web API系列教程]的一部分,如果您是第一次看本博客文章,请先看前面的内容 ...
- 【Demo 0001】Android 程序结构
Android 学习步骤及内容: 1. Android 程序结构(开发环境搭建,Android第一程序,程序启动过程以及工程介绍): 2. Android 事件(通用使用规则,通用 ...
- uva 11212
非原创!!! 原作者地址:http://www.hardbird.net/?p=238
- Linux开发环境的搭建和使用——Linux 常用的命令使用
概要 视或电影中看到过类似的场景,黑客面对一个黑色的屏幕,上面飘着密密麻麻的字符,梆梆一顿敲,就完毕了窃取资料的任务. Linux 刚出世时没有什么图形界面.全部的操作全靠命令完毕.就如同电视里的黑客 ...
- 菜鸟版JAVA设计模式—从买房子看代理模式
今天学习了代理模式. 相对于适配器模式,或者说装饰器模式,代理模式理解起来更加简单. 代理这个词应该比較好理解,取代去做就是代理. 比方,我们买卖房子,那么我们会找中介,我要卖房子,可是我们没有时间去 ...
- Eclipse shift + ctrl + F 不好用
出现 shift + Ctrl + F 整理代码没有反应的情况,先检查下输入法是否是英文的,切换英文后再尝试.