一、Android中的MVC

(1)activity主要用来页面的展示

(2)engine包:获取数据和展示数据(包含数据适配器)

(3)domain包:存放数据实体

第一种包结构组织关系:

第二种包结构:

利用程序的业务逻辑进行代码划分,比如QQ, qq有登陆模块,聊天模块,群组模块,qq空间模块

com.tencent.login

com.tencent.im

com.tencent.group

com.tencent.zoom

二、建立工程和包

splash主要用于闪屏的显示(包括产品logo显示,数据库初始化,获取服务器最新信息是否有新版本更新,)

市场上不少应用会在不同时间显示不同logo,这是怎么做的呢?是事先偷偷的将logo就下载好了,到了特定的某一天就会加载到该界面。

我建立的工程如下:

要注意在mainfest文件里面的路径配置:package=" "  android:name=" "

  1. <?xml version="1.0" encoding="utf-8"?>
  2. <manifest xmlns:android="http://schemas.android.com/apk/res/android"
  3. package="com.example.mobiesafe"
  4. android:versionCode="1"
  5. android:versionName="1.0" >
  6.  
  7. <uses-sdk
  8. android:minSdkVersion="8"
  9. android:targetSdkVersion="17" />
  10.  
  11. <application
  12. android:allowBackup="true"
  13. android:icon="@drawable/ic_launcher"
  14. android:label="@string/app_name"
  15. android:theme="@style/AppTheme" >
  16. <activity
  17. android:name=".ui.SplashActivity"
  18. android:label="@string/app_name" >
  19. <intent-filter>
  20. <action android:name="android.intent.action.MAIN" />
  21.  
  22. <category android:name="android.intent.category.LAUNCHER" />
  23. </intent-filter>
  24. </activity>
  25. </application>
  26.  
  27. </manifest>

现在创建布局文件splash.xml

  1. <?xml version="1.0" encoding="utf-8"?>
  2. <!-- 线性布局 -->
  3. <LinearLayout xmlns:android="http://schemas.android.com/apk/res/android"
  4. android:layout_width="match_parent"
  5. android:layout_height="match_parent"
  6. android:background="@drawable/logo2"
  7. android:gravity="center_horizontal"
  8. android:orientation="vertical"
  9. android:id="@+id/ll_splash_main"
  10. >
  11. <!-- 显示版本号 -->
  12. <TextView
  13. android:id="@+id/tv_splash_version"
  14. android:layout_width="wrap_content"
  15. android:layout_height="wrap_content"
  16. android:layout_marginTop="280dip"
  17. android:text="版本号"
  18. android:textColor="#FF01b6f8"
  19. android:textSize="20sp" />
  20. <!-- 下载进度条 -->
  21. <ProgressBar
  22. android:layout_width="wrap_content"
  23. android:layout_height="wrap_content"
  24. android:layout_marginTop="50dip" />
  25.  
  26. </LinearLayout>

SplashActivity

  1. package com.meritit.mobiesafe.ui;
  2.  
  3. import android.app.Activity;
  4. import android.app.ProgressDialog;
  5. import android.content.pm.PackageInfo;
  6. import android.content.pm.PackageManager;
  7. import android.os.Bundle;
  8. import android.view.Window;
  9. import android.view.WindowManager;
  10. import android.view.animation.AlphaAnimation;
  11. import android.widget.LinearLayout;
  12. import android.widget.TextView;
  13.  
  14. import com.example.mobiesafe.R;
  15.  
  16. public class SplashActivity extends Activity {
  17. private static final String TAG = "SplashActivity";
  18. private TextView tv_splash_version;
  19. private LinearLayout ll_splash_main;
  20. private ProgressDialog pd ;
  21. private String versiontext;
  22.  
  23. @Override
  24. public void onCreate(Bundle savedInstanceState) {
  25. super.onCreate(savedInstanceState);
  26. // 取消标题栏
  27. requestWindowFeature(Window.FEATURE_NO_TITLE);
  28. setContentView(R.layout.splash);
  29. ll_splash_main = (LinearLayout) this.findViewById(R.id.ll_splash_main);
  30. tv_splash_version = (TextView) this
  31. .findViewById(R.id.tv_splash_version);
  32. versiontext = getVersion();
  33. tv_splash_version.setText(versiontext);
  34. AlphaAnimation aa = new AlphaAnimation(0.0f, 1.0f);
  35. aa.setDuration(2000);
  36. ll_splash_main.startAnimation(aa);
  37.  
  38. // 完成窗体的全屏显示 // 取消掉状态栏
  39. getWindow().setFlags(WindowManager.LayoutParams.FLAG_FULLSCREEN,
  40. WindowManager.LayoutParams.FLAG_FULLSCREEN);
  41.  
  42. }
  43.  
  44. /**
  45. * 获取当前应用程序的版本号
  46. *
  47. * @return
  48. */
  49. private String getVersion() {
  50. try {
  51. //包管理服务
  52. PackageManager manager = getPackageManager();
  53. //第一个参数为包名
  54. PackageInfo info = manager.getPackageInfo(getPackageName(), 0);
  55. return info.versionName;
  56. } catch (Exception e) {
  57.  
  58. e.printStackTrace();
  59. return "版本号未知";
  60. }
  61. }
  62.  
  63. }

运行结果

源代码下载:http://download.csdn.net/detail/lxq_xsyu/5928701

手机安全卫士开发系列(2)——splash界面的更多相关文章

  1. 【手机安全卫士01】项目Splash页面的开发与设计

    首先建立一个安卓的项目,然后修改manifest.xml文件,修改应用程序的logo和显示名称,效果图如下: 对应的代码如下: <?xml version="1.0" enc ...

  2. Android项目实战--手机卫士开发系列教程

    <ignore_js_op> banner131010.jpg (71.4 KB, 下载次数: 0) 下载附件  保存到相册 2 分钟前 上传   Android项目实战--手机卫士01- ...

  3. hbuilder 手机app开发系列(一)

    最佳答案好水啊,实在看不过眼,首先apicloud是一个框架,hbuidler是ide工具,两者没什么可比性.我来推荐一个国外免费开源的项目吧,Ionic framework,我之所以推荐它是因为它支 ...

  4. 【边做项目边学Android】手机安全卫士05_2:程序主界面,为每一个条目加入事件

    为每一个条目加入点击事件监听器 gv_main.setOnItemClickListener(this); 须要当前Activity实现OnItemClickListener接口.同一时候实现publ ...

  5. Android项目实战_手机安全卫士splash界面

    - 根据代码的类型组织包结构 1. 界面 com.hb.mobilesafe.activities 2. 服务 com.hb.mobilesafe.services 3. 业务逻辑 com.hb.mo ...

  6. 高仿QQ即时聊天软件开发系列之二登录窗口界面

    继上一篇高仿QQ即时聊天软件开发系列之一开端之后,开始做登录窗口 废话不多说,先看效果,只有界面 可能还有一些细节地方没有做,例如那个LOGO嘛,不要在意这些细节 GIF虽短,可是这做起来真难,好吧因 ...

  7. Android项目 手机安全卫士(代码最全,注释最详细)之十二 设置中心的界面

    ------- 源自梦想.永远是你IT事业的好友.只是勇敢地说出我学到! ---------- 按惯例,写在前面的:可能在学习Android的过程中,大家会和我一样,学习过大量的基础知识,很多的知识点 ...

  8. 【Qt编程】基于Qt的词典开发系列<六>--界面美化设计

    本文讲一讲界面设计,作品要面向用户,界面设计的好坏直接影响到用户的体验.现在的窗口设计基本都是扁平化的,你可以从window XP与window 8的窗口可以明显感觉出来.当然除了窗口本身的效果,窗口 ...

  9. Android项目实战_手机安全卫士home界面

    # 安全卫士主页面# ###1.GridView控件 1.与ListView的使用方式差不多,也要使用数据适配器,通过设置android:numColumns控制显示几列 2.通过指定android: ...

随机推荐

  1. jQuery源码整体结构(源码2.0.3)

    拨开jQuery的面纱,最近了解了下jQuery源码整体框架.主要包括: (1)  jQuery 核心模块 (2)  sizzle 选择器引擎 (3)  Deferred 异步队列 (4)  Supp ...

  2. cmd 进入不同的驱动盘及上下级目录

    “开始”=>“运行”,输入”cmd“,此时进入的是系统管理员的等待命令 如果想进入相应的盘符,如 d 盘,则输入 cd d:\,然后再次输入 d: 即可进入 d: 盘,输入两次相当于第二在是询问 ...

  3. 国内国外最好的java开发论坛及站点 [转]

    国内: www.chinajavaworld.com -论坛人很多,高手也多,不过好像都在潜水    www.cn-java.com -也很不错,文章很好,但是就是商业性浓了点.    www.chi ...

  4. awk基础 [马哥视频]

    awk基础 1.1 print print的使用格式: print item1,item2, …. 要点: 各项目自己使用逗号隔开,而输出时则以空白字符分隔: 输出的item可以为字符串或者数值,当前 ...

  5. 常用原生JS兼容性写法汇总

    1.添加事件方法 addHandler:function(element,type,handler){ if(element.addEventListener){//检测是否为DOM2级方法 elem ...

  6. mmap内存映射复习

    c语言初学时,比较常见的一个习题就是实现cp. 使用c库实现的cp就不赘述了. 最近工作用到内存映射,就拿来练下手,复习一下mmap的用法. 很简单,将目标文件和源文件映射到内存,然后使用memcpy ...

  7. Mozilla正在SpiderMonkey中测试JavaScript并行计算

    Mozilla正致力于实现JavaScript“并行(parallelism)计算”,以便充分利用硬件性能.Dave Herman是Mozilla Research的首席研究员和策略总监.近日,他在一 ...

  8. Energy Minimization

    zoj2539:http://acm.zju.edu.cn/onlinejudge/showProblem.do?problemCode=2539 题意:公式第一项只要当xi=0时才会有作用,第二项只 ...

  9. 用JQUERY的deferred异步按顺序调用后端API

    花了两天啊,想办法. 顺便,DJANGO分页的东东也熟悉了下. 如果不用最新的deferred这个东东,那我们以前传统的链式异步调用代码很难看,且长. 以下这个东东未作优化代码封装. this的参数用 ...

  10. ExecutorService介绍

    转自: http://victorzhzh.iteye.com/blog/1010359 下面是excutor相关的类结果: ExecutorService接口继承了Executor接口,定义了一些生 ...