开源中国安卓客户端源码学习(一) 渐变启动界面

开源中国安卓客户端源码学习(一)



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

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

首先是渐变的启动界面.

定位到程序入口, /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中清理一下项目缓存, 要不然可能无法即时显示修改后的界面.

时间: 2024-10-25 13:49:06

开源中国安卓客户端源码学习(一) 渐变启动界面的相关文章

开源中国安卓客户端源码之自定义控件---ScreenShotView

首先,感谢开源中国的开源精神.当初学者拿到客户端源码时,可能会对其中的项目结构和代码产生许多困惑,不知道该从何下手,当然我也是其中一员,接触安卓时间不长,也不是很精通,但是通过一段时间的琢磨,慢慢地领会到其中的一些编程方法,我只是想把我弄明白的这些知识通过博客的形式记录下来,以备以后查看,当然也可以帮助到更多的初学者.我的主要工作是给代码添加注释,理顺调用关系,让初学者更快.更深刻地理解代码的含义,领会其精神.首先大家从http://git.oschina.net/oschina/android

Oschina 安卓客户端源码学习之一

今天主要研究一下两个功能 (1)双击返回键退出程序 (2)接近完美地退出程序 (1) 在很多应用程序里都有一个功能,就是点击返回键,之后提示你再点击返回键就退出程序.之前一直很好奇这是怎么实现的,今天正好把开源中国安卓客户端源码扒下来了,所以就在这里研究一下这个很简单的功能. public class DoubleClickExitHelper { private final Activity mActivity; private boolean isOnKeyBacking; private

Oschina 安卓客户端源码学习之三

今天呢,来研究一个功能,消息通知 (1)首先是消息推送的获得或者说是产生. 在main.java这个文件里有这样一个函数 /** * 轮询通知信息 */ private void foreachUserNotice() { final int uid = appContext.getLoginUid(); final Handler handler = new Handler() { public void handleMessage(Message msg) { if (msg.what ==

春秋旅行安卓客户端源码项目

春秋旅行安卓客户端源码,这是一款高度模仿春秋旅行app开发的一款应用,通过抓包工具获取到的接口,希望大家能够喜欢,并且对大家的学习能够有所帮助. 源码下载:http://code.662p.com/view/12837.html <ignore_js_op> <ignore_js_op> 详细说明:http://android.662p.com/thread-6460-1-1.html

Android应用源码仿暴风影音安卓客户端源码

Android应用源码仿暴风影音安卓客户端源码 本项目是一个模仿暴风影音的UI项目源码,仿照的界面有菜单页,主页,分类页等,项目内的所有数据都使用的本地模拟数据,仿照度一般在大分辨设备上布局显示会有问题,480x800的分辨率应该正合适,默认编译版本4.2.2编码GBK,注释不多,需要的朋友可以下载看一下. 下载地址:http://www.devstore.cn/code/info/133.html 运行截图:     版权声明:本文为博主原创文章,未经博主允许不得转载.

HSQLDB源码学习——数据库安装启动及JDBC连接

HSQLDB 是一个轻量级的纯Java开发的开放源代码的关系数据库系统.因为HSQLDB的轻量(占用空间小),使用简单,支持内存运行方式等特点,HSQLDB被广泛用于开发环境和某些中小型系统中. 在http://sourceforge.net/projects/hsqldb/files/下载了HSQLDB 1.8.0版本.把下载的zip文件解压缩至任意目录例如c:\hsqldb1.8便完成安装. hsqldb有四种运行模式: 一.内存(Memory-Only)模式:所有数据都在内存里操作.应用程

OSChina客户端源码学习(3)--轮询机制的实现

主要以OSChina Android客户端源码中Notice的轮询机制进行解读. 一.基础知识 一般IM(即使通讯)的实现有两种方式:推送和轮询,推送就是服务器主动向客户端发送消息,用特定的协议比如XMPP.MQTT.另一种是轮询,实时性并不高,而且比较耗电.这种有分为两种情况:一段时间发起一次查询和死循环进行查询. 参考: http://jcodecraeer.com/a/anzhuokaifa/androidkaifa/2014/0401/1609.html 远端Service调用: a.服

SpringBoot源码学习系列之启动原理简介

本博客通过debug方式简单跟一下Springboot application启动的源码,Springboot的启动源码是比较复杂的,本博客只是简单梳理一下源码,浅析其原理 为了方便跟源码,先找个Application类,打个断点,进行调试,如图所示: step into,run方法调用了SpringApplication的run方法 通过debug,Springboot启动过程,会先执行如下关键的构造函数 分析构造函数源码: public SpringApplication(ResourceL

开源的豆瓣客户端源码 大家可以学习下

开放源代码 由于豆瓣关闭了个人开发者 API Key 申请,此应用已不可能向公众发布,因此决定提前开放源代码,也给有兴趣者做些 HACKING. 以下是关于豆芽的说明. 部分特性 Material Design 首页友邻广播 启动速度优化 界面动画 支持屏幕旋转 平板多列视图 支持使用 Custom Tabs 打开网页 支持切换长/短链接显示 预览 图片:            视频: 优酷链接 Vimeo 链接 关于名字 豆芽的名字取自“Douban, Yet Another”的缩写和中文词语