第一天:splash页面和防盗功能
2012-12-19 18:39
351 查看
mvc 结构(程序的结构图片) 另外一种包结构,以业务逻辑进行包的划分。 splash界面 :飞洒 飞溅 完成一个产品logo显示. 1. 后台完成数据库初始化的操作 2. 联网访问服务器,获取服务器最新信息 3. 不同的时间显示出来不同logo 判断当前系统时间, 素材一般从服务器上下载下来. 4. 判断时间 根据时间显示不同的logo 1.明确项目的需求: 2.美工人员根据需求构图. 3.开发 项目经理 控制项目开发进度. 1.在做程序自动安装更新的时候 ,必须保证程序的签名和包名是相同. C:\Documents and Settings\zehua\.android \ debug.keystore debug的签名,开发时候的签名 Re-installation failed due to different application signatures. Please execute 'adb uninstall cn.itcast.mobilesafe' in a shell. 2. 两种上下文 03-30 04:01:48.632: ERROR/AndroidRuntime(4841): android.view.WindowManager$BadTokenException: Unable to add window -- token null is not for an application applicationcontext 生命周期 进程存在 上下文就存在 activity.this activity 在任务栈 上下文存在 一个是应用程序的上下文,只要你的这个程序的进程存在它就存在。 一个是当前activity的上下文,只要在任务栈中,这它就存在。 在打开数据库传入上下文时间,要用应用程序上下文,因为如果你用activity上下文,如果回收了 就不存在,就出错了,所以弹出框只能和acitvity上下文,如果是全局的要用全局上下文。 环境 03-30 07:26:36.151: WARN/ActivityManager(72): Permission Denial: receiving Intent { act=android.intent.action.NEW_OUTGOING_CALL (has extras) } to cn.itcast.mobilesafe requires android.permission.PROCESS_OUTGOING_CALLS due to sender com.android.phone (uid 1001) 03-30 07:28:38.542: ERROR/AndroidRuntime(7028): java.lang.RuntimeException: Unable to start receiver cn.itcast.mobilesafe.receiver.CallPhoneReceiver: android.util.AndroidRuntimeException: Calling startActivity() from outside of an Activity context requires the FLAG_ACTIVITY_NEW_TASK flag. Is this really what you want? md5 -> md5 30次 笔记 : LinearLayout有两个非常相似的属性:android:gravity与android:layout_gravity。 他们的区别在于:android:gravity用于设置View组件的对齐方式, 而android:layout_gravity用于设置Container组件的对齐方式。 举个例子,我们可以通过设置android:gravity="center" 来让EditText中的文字在EditText组件中居中显示; 同时我们设置EditText的android:layout_gravity="right" 来让EditText组件在LinearLayout中居中显示。 java代码 中引用 资源 的方法,记住,安卓 中上下文Context可以得到一切资源。 java代码中引用字符串资源的方法。 getApplicationContext().getString(R.string.versionWarn); 两种图标: <application android:icon="@drawable/ic_launcher" android:label="@string/app_name" > 这个是在安卓的管理程序显示的图标和名称。 <activity android:icon="@drawable/icon5" android:label="@string/app_name" android:name=".ui.SplashActivity" > 这个在桌面显示。 文件保存编码方式和XML头的声明是否一致,否则你永远无法解析正确。 也就是说,你最好先自己从浏览器打开看看,能不能访问。 一般而言,业务方法的异常不要try catch而是要抛出来,否则别人调用 它如果方法出异常了能够得到并且处理,如果不抛出来,即使出问题了, 也找不到。在业务中,在方法中抛出,在action层,一定要包起来。给它处理了。 为什么有时间我们找不到R文件下的资源,因为我们引入包错了。 import cn.itcast.mobilesafe.R; 而我们可能会错误引入系统的包import android.R. 我们要引用自己系统下的R文件。 所有的弹出框的建立方法一样的, new AlertDialog.Builder(this) .setTitle("单选框") .setIcon(R.drawable.down) 只是后面set的东西一样,有单选,多选,弹出等。 最后都是create().show(); 其中比较厉害的一个是有一个setView(View view)里面可以传入任何 View对象,那厉害了,是吧。 操,这是我找了半天的错误: public UpdataInfo getUpdataInfo(int urlid) throws Exception{ String path = context.getResources().getString(urlid); URL url = new URL(path); HttpURLConnection connection = (HttpURLConnection) url.openConnection(); connection.setRequestMethod("GET"); connection.setConnectTimeout(2000);//如果超过两秒超时就不再连接,注意还有个方法是connection.setReadTimeout(timeout)不要混淆 //我所有的错误原来来自于这里面这个如果你不设置连接超时,那么它会一直的等待,那么方法就阻塞在这了,永远不会执行。 InputStream inputStream = connection.getInputStream(); //把流转换成实体 return UpdataInfoParse.parseXml(inputStream); } 原来把设置超时方法的方法给写错了。 所有的各种ListView,GridView等,都是一样的,它们都是一个独立的布局,里面不过是那些相同的item, 所以我们还需要一个item.xml的布局,然后把这个item用inflate吹起来,返回一个整体的View对象。 android:gravity 设置此组件中的内容在组件中的位置。 可选的值有:top、bottom、left、right、center_vertical、fill_vertical、center_horizontal、 fill_horizontal、center、fill、clip_vertical 可以多选, 用“|”分开。关联方法:setGravity (int gravity) 用XML画一些基本图形: 这是画一个正文形,下面是对这个正文形的一些作用。 <?xml version="1.0" encoding="utf-8"?> <shape xmlns:android="http://schemas.android.com/apk/res/android" android:shape="rectangle" > <!-- 描边 --> <stroke android:width="0.5dip" android:color="#ff505050" /> <!-- 圆角 --> <corners android:radius="2dip" > </corners> <gradient android:startColor="#ff404040" android:centerColor="#ff383838" android:endColor="#ff404040" /> </shape> 操,原来图片那么好看,全部是依赖于背景图片呀。 android:theme="@android:style/Theme.NoTitleBar" 手机防盗界面不显示 ,通过拨某个电话号码去实现。 如果你在广播接收者和服务里面去开启一个activity的时间 因为广播接收者和服务没有任务栈,所以要显式的指定。 不能通过abortBroad因为通话调用发送广播的方法是带有 接收者API,这个方法 不能被abortBroad结束,要用setResult(null) 结束。 让某个GridView的条目不显示。 SDK中所有的安卓的class文件和资源文件都是在一个叫android.jar的包中。 D:\android-sdk-windows\platforms\android-8 想要对电话进行一些控制: <uses-permission android:name="android.permission.PROCESS_OUTGOING_CALLS"/> 允许应用监督、限定或终止呼出的电话 E/AndroidRuntime(1227): java.lang.RuntimeException: Unable to start receiver cn.itcast.mobilesafe.receiver.CallPhoneReceiver: android.util.AndroidRuntimeException: Calling startActivity() from outside of an Activity context requires the FLAG_ACTIVITY_NEW_TASK flag. Is this really what you want? 在任务栈外面不能开启一个activity,因为activity是运行在任务栈里面的,所以在服务和广播接收者里面想要 启动一个必须要指定一个东西, //凡是想要在广播接收者或者服务里面启动一个Intent,就是在创建一个新的Task任务 intent2.setFlags(Intent.FLAG_ACTIVITY_NEW_TASK); 开始自定义弹出窗,其实就是继承,然后重写这个样式 。 //这将是最简单的一种方法,至此把XML转换成View对象已有三种方法 View view = View.inflate(this, R.layout.first_entry_dialog, null); 实现: LayoutInflater factory = LayoutInflater.from(context); return factory.inflate(resource, root);
相关文章推荐
- splash页面定时跳转,引导页倒计时功能开发
- 第一天 splash页面开发和高级设置初步
- 浏览器上的HTML5语音识别功能实例页面
- QTP之对页面的“增删改调整”4个功能项进行校验
- 现在很多的手机应用,都可能会直接嵌入一个web页面。这样做的好处:一个是功能更新方便,维护起来容易,只需要维护服务器的页面即可,不需要更新客户端;另一个是功能通用,不仅Android可以用,iOS也可
- 041医疗项目-模块四:采购单模块—采购单创建好之后跳转到采购单修改页面,然后实现修改采购单功能
- 【Filter 不登陆无法访问】web项目中写一个过滤器实现用户不登陆,直接给链接,无法进入页面的功能
- 点滴积累【JS】---JS小功能(列表页面隔行变色)
- Scrapy框架学习(七)----Scrapy与scrapy-splash框架结合,快速加载js页面
- 百度地图获取数据库点的坐标,并定时刷新到页面上,功能一
- OAF在打开的新页面中添加按钮,功能是关闭当前页面
- 离开页面提醒功能 (实现博客园离开编辑页面时的提醒功能)
- Cloud Test 单页面即时监测功能上线!
- js实现页面打印功能实例代码(附去页眉页脚功能代码)
- ThinkPHP 的页面静态化功能的实现(一)
- [功能]点击ImageView进入页面,时间响应者链实现
- JS 调用打印功能 | 接受页面参数 | 跳出框架(Javascript)
- Goods:注册页面保存User功能发送邮件以及激活功实现
- Android阶段学习笔记 8.1-8.6 之 手机安全卫士 Splash页面
- Ajax程序中,自己实现页面前进、后退、与标签功能(asp.net2.0)