开源中国安卓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. OC之字符串 NSString与NSMutableString

    一.NSString 不可变字符串的操作1)将字符串常量对象直接赋值给字符串引用 NSString *str1=@"hello"; 字符串对象的输出格式:NSLog(@" ...

  2. 在 ASP.NET 网页中不经过回发而实现客户端回调

    一.使用回调函数的好处 在 ASP.NET 网页的默认模型中,用户会与页交互,单击按钮或执行导致回发的一些其他操作.此时将重新创建页及其控件,并在服务器上运行页代码,且新版本的页被呈现到浏览器.但是, ...

  3. 单例模式 与lock用法

    在之前没用lock之前:如果我实现单例模式:直接就是下面的代码: public class Singleton    {        private static Singleton instanc ...

  4. curl 转载

    CURLOPT_RETURNTRANSFER 选项: curl_setopt($ch, CURLOPT_RETURNTRANSFER,1); 如果成功只将结果返回,不自动输出任何内容. 如果失败返回F ...

  5. 适用于 PHP 开发人员的 Python 基础知识

    Thomas Myer, 负责人, Triple Dog Dare Media 简介: 您是一名经验丰富的 PHP 开发人员,并且希望学习 Python 吗?本文将从 PHP 开发人员的角度来探索 P ...

  6. PHP 过滤二维数组和三维数组

    <?php $arr = [ [1,3,5,7,9], [2,4,6,8,0] ]; $arr2 = [ 'list' => [ [1,3,5,7], [2,4,6,8], [3,2,9, ...

  7. powerpoint无法输入中文怎么办|ppt文本框无法输入中文解决办法

    powerpoint文本框无法输入中文的情况不知大家是否遇到过呢?反正小编是遇到过这样的情况的,简直是急煞人也!那么powerpoint无法输入中文时应该怎么办呢?本节内容中小编就为大家带来ppt文本 ...

  8. UCOS 信号量的初值问题

    当 pend请求发出的时候信号量的值减1,当post的时候信号量的值加1,信号量的值0跟1分别是用来同步跟互斥的,什么是同步,什么是互斥呢...假设你把信号量的值设为0,有A,B连个任务,当A发出pe ...

  9. 发现一个时隐时现的bug!

    在awk里可以这样使用正则: #截取 a.cn?fr= 中的1211 -]+/) > ) { fr = substr(url,RSTRART + , RLENGTH - ) } #截取 a.cn ...

  10. 转:socket通信简介

    转:http://blog.csdn.net/xiaoweige207/article/details/6211577/ 我们深谙信息交流的价值,那网络中进程之间如何通信,如我们每天打开浏览器浏览网页 ...