[转载] Android Metro风格的Launcher开发系列第一篇
前言:从毕业到现在已经三年多了,回忆一下这三年基本上没有写过博客,总是觉得忙,没时间写,也觉得写博客没什么大用。但是看到很多大牛们都在写博客,分享自己的东西,所以嘛本着向大牛看齐,分享第一
,记录第二的目的开始写一个系列的文章,我会把我做一个项目的详细过程分享给大家,供大家参考和交流。好了,评书开讲!
可能大家做Android机顶盒或者Android电视开发的比较少,这类开发基本上都是基于源码的开发,大家有一个git版本库,大家开发完了编译出来一个版本烧到板子上跑,要编译肯定就要编译环境什么的,google推荐的是在Ubuntu系统上搭建开发和编译环境。
首先要做的事情是环境搭建:
- 大家可以装双系统或者用Oracle VM VirtualBox在Windows上安装Ubuntu。安装双系统我这里就不说了,大家可以去网上查一下,这里有一个链接大家可以参考:点击打开链接。
- 在Windows环境下通过Oracle VM VirtualBox安装Ubuntu请参考:点击打开链接。
我这说一下注意事项:
(1).必须是Windows7,如果是Windows8可能会出现意想不到的事情,总之就是不想遇到麻烦就用Windows7。
(2).分配虚拟磁盘空间的时候至少要分配30G,因为你要下载android-sdk就会用上十几G,你要是再下载源码那你至少要分60G的空间。
(3).安装完系统后一定要安装增强插件,否则窗口无法全屏,安装方法如下图:
点击红色箭头所指位置,然后在弹出框输入用户密码确认安装,安装完毕重启就可以全屏了。 - 配置开发环境:
(1).配置adb:
去官网下载android-sdk-linux,下载地址是:http://dl.google.com/android/ + 不同版本的sdk
例如:下载r20版本
r20的linux版本:http://dl.google.com/android/android-sdk_r20-linux.tgz
r20的windows版本:http://dl.google.com/android/android-sdk_r20-windows.zip
r20的mac版本:http://dl.google.com/android/android-sdk_r20-macosx.zip
把上面下载的sdk解压到一个目录,比如说是~/software/目录,
终端执行:sudo gedit ~/.bashrc
在最后添加如下内容:
#set path for android sdk tools
exportPATH=$PATH:/home/leo/software/android-sdk-linux/tools
export PATH=$PATH:/home/wuhao/software/android-sdk-linux/platform-tools/
(2).配置java环境:
去官网:点击打开链接下载对应版本的jdk,我的是64位系统,所以下载:jdk-7u75-linux-x64.tar.gz
sudo mkdir /usr/lib/jvm/
cd /usr/lib/jvm/
cp ~/software/jdk-7u75-linux-x64.tar.gz ./
sudo tar -vxzf jdk-7u75-linux-x64.tar.gz
把环境变量配置在用户目录.bashrc文件中是最好的选择,在bashrc里添加:
sudo gedit ~/.bashrc
#set java environment
#JAVA_HOME=/usr/lib/jvm/jdk1.7.0_75
export JRE_HOME=/usr/lib/jvm/jdk1.7.0_75/jre
export CLASSPATH=.:$JAVA_HOME/lib:$JRE_HOME/lib:$CLASSPATH
export PATH=$JAVA_HOME/bin:$JRE_HOME/bin:$PATH
重启生效或者source .bashrc生效
(3).剩下的就是IDE下载和配置了,你可以选用Eclipse或者Android Studio。
Launcher设计
产品要求:(1)在显示第一屏的时候第二屏要在屏幕右侧有一部分显示,并且是缩小显示,在page二显示的时候page一在左侧缩小显示一部分,page三部分显示,page之间切换流畅,图标放大缩小流畅。(2)在每一个图标上焦点的时候要放大显示,图标周围有阴影或者焦点框之类的突出显示出来,丢焦点的时候还原为正常显示。(3)图标对应的应用链接可以在xml文件配置。(4)page个数可以配置,可以通过简单的修改参数去掉某个page。拿到上面的产品需求你会怎么做呢?我是作如下考虑的:(1)第一个需求我想到了ViewPager、viewflipper,这两个可以做到page之间切换流畅。(2)每一个图标抽象出来做成一个View,放大缩小用属性动画可以做到,对应的View xml文件可以自定义属性完成应用链接配置。(3)灵活添加,删除page需要好好考虑一下代码实现。哎呀,好累,一个周六几个小时就这么过去了,套用《框框日记》里面框框经常说的一句话“多么有意义的一天呀!”。以上就是我Launcher Metro风格实现的第一篇博文,简单描述了环境配置和设计思路,写的有不足之处还请各位多多包涵和交流,具体代码实现我会在我的下一篇博文中进行讲解,请多多关注!
转载请注明出处:http://blog.csdn.net/cwuhao/article/details/44514191,谢谢合作!第一时间获得博客更新提醒,以及更多技术信息分享,欢迎关注个人微信公众平台:程序员互动联盟(coder_online),扫一扫下方二维码或搜索微信号coder_online即可关注,我们可以在线交流。
[转载] Android Metro风格的Launcher开发系列第一篇的更多相关文章
- Android Metro风格的Launcher开发系列第一篇
前言:从毕业到现在已经三年多了,回忆一下这三年基本上没有写过博客,总是觉得忙,没时间写,也觉得写博客没什么大用.但是看到很多大牛们都在写博客,分享自己的东西,所以嘛本着向大牛看齐,分享第一,记录第二的 ...
- 【转载】Android Metro风格的Launcher开发系列第二篇
前言: 各位小伙伴们请原谅我隔了这么久才开始写这一系列的第二篇博客,没办法忙新产品发布,好了废话不说了,先回顾一下:在我的上一篇博客Android Metro风格的Launcher开发系列第一篇写了如 ...
- Android Metro风格的Launcher开发系列第二篇
前言: 各位小伙伴们请原谅我隔了这么久才开始写这一系列的第二篇博客,没办法忙新产品发布,好了废话不说了,先回顾一下:在我的上一篇博客http://www.cnblogs.com/2010wuhao/p ...
- Android Metro风格的Launcher开发系列第三篇
前言: 各位小伙伴,又到了每周更新文章了时候了,本来是周日能发出来呢,这不是赶上清明节吗,女王大人发话了,清明节前两天半陪她玩,只留给我周一下午半天时间写博客,哪里有女王哪里就有压迫呀有木有!好了闲话 ...
- Android设计和开发系列第一篇:Notifications通知(Develop—API Guides)
Notifications IN THIS DOCUMENT Design Considerations Creating a Notification Required notification c ...
- Android设计和开发系列第一篇:Notifications通知(Develop—Training)
Develop篇 Building a Notification PREVIOUSNEXT THIS LESSON TEACHES YOU TO Create a Notification Build ...
- Android设计和开发系列第一篇:Notifications通知(Design)
Design篇 Notifications The notification system allows users to keep informed about relevant and timel ...
- 【转载】chromium浏览器开发系列第一篇:如何获取最新chromium源码
背景: 最近摊上一个事儿,领导非要让写一篇技术文章,思来想去,自己接触chrome浏览器时间也不短了,干脆就总结一下吧.于是乎,本文顺理成章.由于有些细节必需描述清楚,所以这次先讲如何拿到ch ...
- 转载:浏览器开发系列第一篇:如何获取最新chromium源码
背景: 最近摊上一个事儿,领导非要让写一篇技术文章,思来想去,自己接触chrome浏览器时间也不短了,干脆就总结一下吧.于是乎,本文顺理成章.由于有些细节必需描述清楚,所以这次先讲如何拿到ch ...
随机推荐
- Mantis 缺陷管理系统配置与安装
什么是Mantis MantisBT is a free popular web-based bugtracking system (feature list). It is written in t ...
- 随笔分类 - 无废话ExtJs系列教程
随笔分类 - 无废话ExtJs系列教程 摘自:http://www.cnblogs.com/iamlilinfeng/category/385121.html ExtJs 入门教程 摘要: extjs ...
- C#的Raw Socket实现网络封包监视
同Winsock1相比,Winsock2最明显的就是支持了Raw Socket套接字类型,使用Raw Socket,可把网卡设置成混杂模式,在这种模式下,我们可以收到网络上的IP包,当然包括目的不是本 ...
- 论httpclient上传带参数【commons-httpclient和apache httpclient区别】
需要做一个httpclient上传,然后啪啪啪网上找资料 1.首先以前系统中用到的了commons-httpclient上传,找了资料后一顿乱改,然后测试 PostMethod filePost = ...
- Visual Studio 2013 Preview 新功能
先来看一下Visual Studio的版本历史: 1. Visual Studio.NET 2002 2. Visual Studio.NET 2003 3. Visual Studio.NET 20 ...
- windows下使用makecert命令生成自签名证书
1.makecert命令路径 C:\Program Files (x86)\Windows Kits\8.1\bin\x64 2.生成一个自签名证书 makecert -r -pe -n " ...
- JSON的三种解析方式
一.什么是JSON? JSON是一种取代XML的数据结构,和xml相比,它更小巧但描述能力却不差,由于它的小巧所以网络传输数据将减少更多流量从而加快速度. JSON就是一串字符串 只不过元素会使用特定 ...
- Linux 学习手记(3):Linux基本的文件管理操作
复制文件和目录 在Linux中使用命令cp来复制文件或者目录,使用方式: cp 源文件(文件夹) 目标文件(文件夹) cp命令常用参数: -r 递归复制整个目录 -v 显示详细信息 移动.重命名一个文 ...
- js中创建对象的几种方式
创建对象指创建一个object并给这个对象添加属性和方法,有以下几个方式: 最基本的: var Person={}; Person.name='tom'; Person.age='20'; Perso ...
- javascript宿主对象之window.frames
window.frames属性是当前页面所有框架的集合.要注意的事,这里并没有frame和iframe做出区分.而且,无论页面存不存在框架,window.frames属性总是存在的,并总是指向wind ...