开源中国安卓client源代码学习(一) 渐变启动界面


准备学习安卓开发, 看到网上有人推荐开源中国安卓client的源代码, 说里面包括了大部分技术, 于是准备好好研究研究. 特开通此系列博客来记录学习过程. 因为是在学习, 经验不足, 里面肯定有非常多不正确的地方, 望大家指正.

这里下载源代码包,开发环境为Linux下Eclipse,导入源代码后有可能会出现android.webkit.CacheManager找不到的错误, 原因是这个类在4.0以上版本号的SDK被删除了, 仅仅要下载4.0版本号的SDK使用就可以. 因为google被墙, 使用SDK管理器可能无法下载, 能够在网上直接下载4.0的SDK, 将目录名字改为android-15, 放到android-sdk的platforms目录下.

首先是渐变的启动界面.

从AndroidManifest.xml中定位到程序入口为 /oschina-android-app/src/net/oschina/app/AppStart.java, AppStart为启动类, onCreate方法为入口方法,

final View view = View.inflate(this, R.layout.start, null); //由layout目录下的start.xml文件定义启动界面视图
setContentView(view); // 设置activity显示的视图

start.xml 文件内容例如以下:

<?

xml version="1.0" encoding="utf-8"?

>
<LinearLayout xmlns:android="http://schemas.android.com/apk/res/android"
android:id="@+id/app_start_view"
android:orientation="vertical"
android:layout_width="fill_parent"
android:layout_height="fill_parent"
android:gravity="bottom"
android:background="@drawable/start_background"> // 渐变使用的图片, 但这里的start_background是个xml文件, 以更精确的控制图片
</LinearLayout>

start_background.xml内容例如以下

<?xml version="1.0" encoding="utf-8"?

>
<bitmap xmlns:android="http://schemas.android.com/apk/res/android"
android:src="@drawable/welcome" // 启动图片, welcome.png
android:scaleType="fitStart"/> // 缩放类型

利用AlphaAnimatio类来实现启动界面的渐变效果

    AlphaAnimation aa = new AlphaAnimation(0.3f,1.0f); // 渐变透明度范围
aa.setDuration(2000); // 持续时间
view.startAnimation(aa); // 启动渐变
aa.setAnimationListener(new AnimationListener()
// 监听事件, 设置渐变開始, 反复, 结束时的处理
{
@Override
public void onAnimationEnd(Animation arg0) {
redirectTo(); // 渐变结束后进入到主界面
}
@Override
public void onAnimationRepeat(Animation animation) {}
@Override
public void onAnimationStart(Animation animation) {} });

以下的redirectTo函数, 其功能就是新开一个activity, 在当中打开主界面, 而且结束当前activity

 private void redirectTo(){
Intent intent = new Intent(this, Main.class); // Main 是一个继承了Activity的类
startActivity(intent); // 在新的activity中打开主界面
finish(); // 结束当前activity
}

这个类中另外两个函数checkgetTime都不重要, 略过.

tips: 改动启动界面的图片资源后, 要在eclipse的project-clean中清理一下项目缓存, 要不然可能无法即时显示改动后的界面.

开源中国安卓client源代码学习(一) 渐变启动界面的更多相关文章

  1. Oschina 安卓client源代码学习之中的一个

    今天主要研究一下两个功能 (1)双击返回键退出程序 (2)接近完美地退出程序 (1) 在非常多应用程序里都有一个功能,就是点击返回键,之后提示你再点击返回键就退出程序. 之前一直非常好奇这是怎么实现的 ...

  2. [Android]开源中国源码分析之一---启动界面

    开源中国android端版本号:2.4 启动界面: 在AndroidManifest.xml中找到程序的入口, <activity android:name=".AppStart&qu ...

  3. 开源中国iOS客户端学习

    开源中国iOS客户端学习 续写前言 <开源中国iOS客户端学习>续写前系列博客    http://blog.csdn.net/column/details/xfzl-kykhd.html ...

  4. Ninesky源代码从Codeplex迁移到开源中国

    原来Ninesky代码一直发在Codeplex.com上,最近两三个星期了代码一直迁入不上去,网站访问也经常出错. 所以把代码放到开源中国去了,项目地址https://git.oschina.net/ ...

  5. 开源中国IOSclient

    我想看看别人开发项目.通过吸收经验,然后找到开放的中国,丹尼尔一些网上也开发了自己的开源在中国client 在网上看到很多网友说,不能下载东西像安装,我带来了我的方式,其中的一些朋友想帮忙. http ...

  6. 2014 年最热门的国人开发开源软件 TOP 100 - 开源中国社区

    不知道从什么时候开始,很多一说起国产好像就非常愤慨,其实大可不必.做开源中国六年有余,这六年时间国内的开源蓬勃发展,从一开始的使用到贡献,到推出自己很多的开源软件,而且还有很多软件被国外的认可.中国是 ...

  7. 使用calabash测试开源中国Android客户端

    Calabash-android是支持android的UI自动化测试框架,前面已经介绍过<中文Win7下成功安装calabash-android步骤>,这篇博文尝试测试一个真实应用:开源中 ...

  8. 仿知乎安卓client滑动删除撤销ListView

    标签(空格分隔): Android 新版的知乎安卓client有一个有趣的功能,就是在一个item里.向右滑动时整个item会越来越透明,滑动到一半时,整个item就不见了.放开手指就是删除.删除后还 ...

  9. iOS超全开源框架、项目和学习资料汇总--数据库、缓存处理、图像浏览、摄像照相视频音频篇

    iOS超全开源框架.项目和学习资料汇总--数据库.缓存处理.图像浏览.摄像照相视频音频篇 感谢:Ming_en_long 的分享 大神超赞的集合,http://www.jianshu.com/p/f3 ...

随机推荐

  1. MSSQL查询所有数据库表,指定数据库的字段、索引

    --查询所有数据库USE mastergoselect [name] from [sysdatabases] order by [name] --查询其中一个数据库test,就可以得到这个数据库中的所 ...

  2. php锁表

    用PHP实现mysql锁表 mysql锁表,是利用相关的SQL语句 //执行SQL语句 锁掉userinfo表 $sql = "LOCK TABLES userinfo WRITE" ...

  3. linux学习笔记<基本知识普及>

    linux上分区类型 主分区 : 最多自能有4个 扩展分区 :  最多只能有1个 主分区加扩展分区最多只能有4个 不能写入数据,只能包含逻辑分区 逻辑分区 挂载(安装linux系统时若自定义分区,需注 ...

  4. mysql 自带全文检索

    对于一些简单的检索可以通过mysql自带的全文索引及 MATCH AGAINST 查询语句实现.实验步骤如下.1.建表DROP table IF exists con_video_file_des_t ...

  5. 手动安装svn到eclipse

    今天为了装个svn搞得我焦头烂额~ 1.下载site-1.10.10.zip.(http://download.csdn.net/download/codepython/9082533) 2.在ecl ...

  6. 输入框 input只能输入正数和小数点

    输入框 input只能输入正数和小数点  限制文本框只能输入正数,负数,小数 onkeyup="value=value.replace(/[^\-?\d.]/g,'')" 限制文本 ...

  7. jQuery自学笔记(一):初识jQuery

    jQuery 是一个 JavaScript 函数库, jQuery 库位于一个 JavaScript 文件中,其中包含了所有的 jQuery 函数,引用jQuery应该注意: <script&g ...

  8. 使用 HTTP 缓存机制提升系统性能

    摘要 HTTP缓存机制定义在HTTP协议标准中,被现代浏览器广泛支持,同时也是一个用于提升基于Web的系统性能的广泛使用的工具.本文讨论如何使用HTTP缓存机制提升基于Web的系统,以及如何避免误用. ...

  9. 1.1HTML的基本概念

    1.WWW有3个基本的组成部分,分别是URL(统一资源定位器),HTTP(超文本传输协议),HTML(本文本标记语言). 2.一个HTML文件是由一系列的元素和标签组成的,元素不区分大小写. 3.&l ...

  10. 设置CentOS里的Mysql开启客户端远程连接

    CentOS系统安装好MySQL后,默认情况下不支持用户通过非本机连接上数据库服务器,下面是解决方法: 1.在控制台执行 mysql -u root -p mysql,系统提示输入数据库root用户的 ...