开源中国安卓client源代码学习(一) 渐变启动界面
开源中国安卓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
}
这个类中另外两个函数check和getTime都不重要, 略过.
tips: 改动启动界面的图片资源后, 要在eclipse的project-clean中清理一下项目缓存, 要不然可能无法即时显示改动后的界面.
开源中国安卓client源代码学习(一) 渐变启动界面的更多相关文章
- Oschina 安卓client源代码学习之中的一个
今天主要研究一下两个功能 (1)双击返回键退出程序 (2)接近完美地退出程序 (1) 在非常多应用程序里都有一个功能,就是点击返回键,之后提示你再点击返回键就退出程序. 之前一直非常好奇这是怎么实现的 ...
- [Android]开源中国源码分析之一---启动界面
开源中国android端版本号:2.4 启动界面: 在AndroidManifest.xml中找到程序的入口, <activity android:name=".AppStart&qu ...
- 开源中国iOS客户端学习
开源中国iOS客户端学习 续写前言 <开源中国iOS客户端学习>续写前系列博客 http://blog.csdn.net/column/details/xfzl-kykhd.html ...
- Ninesky源代码从Codeplex迁移到开源中国
原来Ninesky代码一直发在Codeplex.com上,最近两三个星期了代码一直迁入不上去,网站访问也经常出错. 所以把代码放到开源中国去了,项目地址https://git.oschina.net/ ...
- 开源中国IOSclient
我想看看别人开发项目.通过吸收经验,然后找到开放的中国,丹尼尔一些网上也开发了自己的开源在中国client 在网上看到很多网友说,不能下载东西像安装,我带来了我的方式,其中的一些朋友想帮忙. http ...
- 2014 年最热门的国人开发开源软件 TOP 100 - 开源中国社区
不知道从什么时候开始,很多一说起国产好像就非常愤慨,其实大可不必.做开源中国六年有余,这六年时间国内的开源蓬勃发展,从一开始的使用到贡献,到推出自己很多的开源软件,而且还有很多软件被国外的认可.中国是 ...
- 使用calabash测试开源中国Android客户端
Calabash-android是支持android的UI自动化测试框架,前面已经介绍过<中文Win7下成功安装calabash-android步骤>,这篇博文尝试测试一个真实应用:开源中 ...
- 仿知乎安卓client滑动删除撤销ListView
标签(空格分隔): Android 新版的知乎安卓client有一个有趣的功能,就是在一个item里.向右滑动时整个item会越来越透明,滑动到一半时,整个item就不见了.放开手指就是删除.删除后还 ...
- iOS超全开源框架、项目和学习资料汇总--数据库、缓存处理、图像浏览、摄像照相视频音频篇
iOS超全开源框架.项目和学习资料汇总--数据库.缓存处理.图像浏览.摄像照相视频音频篇 感谢:Ming_en_long 的分享 大神超赞的集合,http://www.jianshu.com/p/f3 ...
随机推荐
- C# - openxml 操作excel - '“System.IO.Packaging.Package”在未被引用的程序集中定义'
在 CodeProject中,有位网友写的一篇基于OpenXML SDK 2.0对excel(大数据量)进行操作,其中,运行的时候,有如下错误: 类型“System.IO.Packaging.Pack ...
- Windows下配置环境变量和需不需要重启问题
http://blog.163.com/guomaolin_gavin/blog/static/19961830720121114929321/
- PHP防注入转义功能
PHP addslashes() 函数 $str = addslashes('Shanghai is the "biggest" city in China.'); echo($s ...
- Nginx log
ngx_http_log_module 模块通过指定的格式把请求写入日志.请求登陆到location处理结束的环境中.如果重定向发生在请求处理过程中,这或许与location原理不同. Example ...
- webservice: Could not initialize Service NoSuchMethodException getPortClassMap()
今天用apache-cxf-3.1.1的wsdl2java生成webservice文件,调用的时候出了问题 报错:Could not initialize Service NoSuchMethodEx ...
- jQuery的map()与jQuery.map()总结
请注意他们不是同一个函数.前者是jQuery对象的实例方法(即$.fn.map),后者是一个仅仅挂在jQuery对象下的静态方法(即$.map). 他们用法的异同:map()的返回值是包裹了一个Arr ...
- Qweb报表中的Reload from Attachment参数
通过继承的方式修改了Qweb报表却发现没有生效,经查,其原因在于报表的设置中勾选了 Reload from Attachment 选项. 将本选项取消选中即可生效.
- Deep Residual Learning for Image Recognition(MSRA-深度残差学习)
转自:http://blog.csdn.net/solomonlangrui/article/details/52455638 ABSTRACT: 神经网络的训练因其层次加深而 ...
- Apache Cloudstack Development 101 -- Data Access Layer
刚接触CloudStack,也是第一次翻译英文文档,限于水平有限,不当之处欢迎拍砖! 原文地址:https://cwiki.apache.org/confluence/display/CloudSta ...
- 方便john破解linux密码批处理
Title:方便john破解linux密码批处理 -- 2011-11-23 17:31 自定义文件HASH名和字典名批处理(单一文件): @echo offcolor 0asetlocal enab ...