Android Metro风格Launcher编写一

前言:从毕业到现在已经三年多了,回忆一下这三年基本上没有写过博客,总是觉得忙,没时间写,也觉得写博客没什么大用。但是看到很多大牛们都在写博客,分享自己的东西,所以嘛本着向大牛看齐,分享第一,记录第二的目的开始写一个系列的文章,我会把我做一个项目的详细过程分享给大家,供大家参考和交流。好了,评书开讲!

可能大家做Android机顶盒或者Android电视开发的比较少,这类开发基本上都是基于源码的开发,大家有一个git版本库,大家开发完了编译出来一个版本烧到板子上跑,要编译肯定就要编译环境什么的,google推荐的是在Ubuntu系统上搭建开发和编译环境。

首先要做的事情是环境搭建:

  1. 大家可以装双系统或者用Oracle VM VirtualBox在Windows上安装Ubuntu。安装双系统我这里就不说了,大家可以去网上查一下,这里有一个链接大家可以参考:点击打开链接
  2. 在Windows环境下通过Oracle VM VirtualBox安装Ubuntu请参考:点击打开链接

    我这说一下注意事项:

    (1).必须是Windows7,如果是Windows8可能会出现意想不到的事情,总之就是不想遇到麻烦就用Windows7。

    (2).分配虚拟磁盘空间的时候至少要分配30G,因为你要下载android-sdk就会用上十几G,你要是再下载源码那你至少要分60G的空间。

    (3).安装完系统后一定要安装增强插件,否则窗口无法全屏,安装方法如下图:

    点击红色箭头所指位置,然后在弹出框输入用户密码确认安装,安装完毕重启就可以全屏了。

  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设计

在电视或者机顶盒上做UI开发,首先要考虑电视尺寸都比较大,你的UI展现要能够在电视屏幕上看着大小合适,展现的简洁舒服,别像原生Launcher那样好多小图标看着密密麻麻的,第二个是要方便遥控器操作,焦点导航显示正确,因为你不可能给机顶盒外接一个鼠标模仿触摸操作,那样太不方便。所以大家都会想到类似Windows 8的那种风格。设计大概像是下面的图:

产品要求:

(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,谢谢合作!

时间: 2024-10-08 20:14:12

Android Metro风格Launcher编写一的相关文章

Android Metro风格的Launcher开发系列第二篇

前言: 各位小伙伴们请原谅我隔了这么久才开始写这一系列的第二篇博客,没办法忙新产品发布,好了废话不说了,先回顾一下:在我的上一篇博客Android Metro风格的Launcher开发系列第一篇写了如何配置Android开发环境,只是用文字和图片展示了开发Metro风格Launcher的初步设计和产品要求,这一篇文章将会从代码上讲解如何实现对应的UI效果,好了,评书开讲! Launcher主体框架实现: Launcher主体框架我选用的是大家所熟悉的ViewPager控件,因为ViewPager

【转载】Android Metro风格的Launcher开发系列第二篇

前言: 各位小伙伴们请原谅我隔了这么久才开始写这一系列的第二篇博客,没办法忙新产品发布,好了废话不说了,先回顾一下:在我的上一篇博客Android Metro风格的Launcher开发系列第一篇写了如何配置Android开发环境,只是用文字和图片展示了开发Metro风格Launcher的初步设计和产品要求,这一篇文章将会从代码上讲解如何实现对应的UI效果,好了,评书开讲! Launcher主体框架实现: Launcher主体框架我选用的是大家所熟悉的ViewPager控件,因为ViewPager

Android Metro风格的Launcher开发系列第三篇

前言: 各位小伙伴,又到了每周更新文章了时候了,本来是周日能发出来呢,这不是赶上清明节吗,女王大人发话了,清明节前两天半陪她玩,只留给我周一下午半天时间写博客,哪里有女王哪里就有压迫呀有木有!好了闲话少说,上一篇博客(Android Metro风格的Launcher开发系列第二篇)说到Launcher主体框架用ViewPager来实现,这一篇博客咱们来说说每一个page的具体实现. PagerAdapter: Launcher主体ViewPager实现就引出了PagerAdapter,Pager

android 1.6 launcher研究之自定义ViewGroup (转 2011.06.03(二)——— android 1.6 launcher研究之自定义ViewGroup )

2011.06.03(2)——— android 1.6 launcher研究之自定义ViewGroup2011.06.03(2)——— android 1.6 launcher研究之自定义ViewGroup 1.用xml来作为ViewGroup里面的View参考:http://www.eoeandroid.com/thread-30888-1-1.html MyViewGroup.java package com.lp; import android.content.Context; impo

02_JNI中Java代码调用C代码,Android中使用log库打印日志,javah命令的使用,Android.mk文件的编写,交叉编译

?? 1  编写以下案例(下面的三个按钮都调用了底层的C语言): 项目案例的代码结构如下: 2 编写DataProvider的代码: package com.example.ndkpassdata; public class DataProvider { /** * 计算x和y的加法  apktools * * @param x * @param y * @return */ public native int add(int x,int y); /** * 给字符串后面拼接字符串   加密运算

Android Camera 相机程序编写

Android Camera 相机程序编写 要自己写一个相机应用直接使用相机硬件,首先应用需要一个权限设置,在AndroidManifest.xml中加上使用设备相机的权限: <uses-permission android:name="android.permission.CAMERA" /> 为你的应用创建自定义的相机,一般步骤如下: 1.检测相机硬件并获取访问 2.建立一个Preview类:需要一个相机预览的类,继承 SurfaceView 类,并实现SurfaceH

[android底层] hal硬件抽象层编写

两个与hal有关的结构体 hw_module_t ,hw_device_t 一.jni和hal之间的关系 Tip:几种app,jni,hal,framework之间的关系框架     这篇文章用的框架是第二种框架的编写,他们的关系如下: 可以看出jni主要通过pModule和pdevice来获取hal中的变量来操作hal层 二.jni操作hal 获取hal层:1.jni获取hal层的module和device对象 操作hal层:2.jni操作hal层 jni操作hal完整代码参考[android

Android !No Launcher activity found!错误

刚开始学android,建了两个工程后,今天新建了个android工程跑程序时显示No Launcher activity found错误,模拟器也不运行. 上网一查,发现问题出在整个项目的那个主配置xml中,一般名字都是叫AndroidManifest.xml 里面没有配置启动项(原因多种多样),在<application></application>中少了这段代码 <activity android:name=".MainActivity" andro

Android技术16:编写Android中直接可运行的二进制文件

我们都知道Android中所有应用程序都运行在Android的Dalvik虚拟机上,一般程序不直接与操作系统打交道,即便调用底层的方法也通过JNI技术.不过我们可以直接使用C语言编写二进制文件,直接在底层运行.下面演示其步骤. 1.安装下载编译器和链接器软件.Sourcery G++ Lite Edition for ARM. arm-none-linux-gnueabi-gcc.exe是编译命令 bin/arm-none-linux-gnueabi-ld.exe是链接命令 2.编写C代码 为了