Android学习(四)
教材学习内容总结
图形和定制视图
硬件加速
- Android APILevel14及其以上版本为目标的应用程序来说,硬件加速是默认可用的。
- 可通过android:hardwareAccelerated="false"来关闭活动或应用的硬件加速。
创建一个定制视图
要创建一个定制视图,需要扩展android.view.View类或其一个子类,并且覆盖其onDraw方法。
onDraw方法的签名为:
protected void onDraw (android.graphics.Canvas canvas)
可以使用Canvas中的方法来绘制图形和文本,也可以创建路径和区域来绘制更多的形状。
Canvas中的大多数的绘制方法都需要一个Paint。应该在类级别创建Paint,并让可以在onDraw方法中使用,而不是在onDraw方法中创建Canvas。
,并且让活动来处理它。
多面板布局

- 在单面板布局【e.g.手机】中,显式地活动通常包含单个的片段,这个片段往往反过来包含一个ListView,选中ListView上的一项,将会开启另一个活动。
- 在多面板布局【e.g.平板电脑】中,通常有一个足够大容纳两个面板的活动。可以使用相同的片段,但是这一次,当选中一个项的时候,它将会更新第2个片段,而不是开始另一个活动。
动画
要点1:属性动画
- 属性动画背后的动力就是android.animation.Animator类,这是一个抽象类,要使用其子类(ValueAnimator或ObjectAnimator)来创建动画。此外,AnimatorSet类是Animator的另一个子类,设计用来以并行或连续的方式运行多个动画。
要点2:Animator类
Animator有一个方法用来设置要进行动画的目标对象(setTarget),还有一个方法用来设置时长(setDuration),还有一个方法用来启动动画(start)。可以在一个Animator对象上多次调用start方法。
Animator提供了一个addListener方法,它接受一个Animator.AnimatorListener实例。AnimatorListener接口定义于Animator类中,并且提供当特定的事件发生的时候系统所调用的方法。如果想要相应某一个事件的话,可以实现这些方法中的一个。
- void onAnimationStart(Animator animation);
- void onAnimationEnd(Animator animation);
- void onAnimationCancel(Animator animation);
- void onAnimationRepeat(Animator animation);
valueAnimator
ValueAnimator它本身并不会作用与任何一个属性,它本身也不会提供任何一种动画。它简单的来说,就是一个数值发生器,它可以产生你想要的各种数值。
objectAnimator
ObjectAnimator执行的属性动画,都是根据java的反射机制来设置的,因此设置动画的目标对象的属性必须有getter 和setter方法。
教材学习中的问题和解决过程
- 问题1: 在fragment不应该写监听器,应该写出对一个事件的相应并让活动来处理它。 这个tip不知道如何实现。
- 问题1解决方案:直接在fragment写活动的方法。
mainActivity.playService.isPlaying())
代码调试中的问题和解决过程
问题1:
当调试点击listview时,每调一次都需要重启一次模拟器。问题1解决方案:
debug中除了step in等还有revert cursor这个方法可以省去重启的步骤。
代码托管

上周考试错题总结
- 错题1:
Multi-dimensional arrays that contain arrays of different lengths in any one dimension are called ?.(包括不同长度数组的多维数组叫做?)
A.ragged arrays(锯齿状数组)
B.static arrays(静态数组)
C.two-dimensional arrays(二维数组)
D.constant arrays(常量数组)
E.overloaded arrays(重载数组)
正确答案:A
锯齿状数组初始化方法:int [][] raggedArray = new int[10][];
学习进度条
| 代码行数(新增/累积) | 博客量(新增/累积) | 学习时间(新增/累积) | 重要成长 | |
|---|---|---|---|---|
| 目标 | 5000行 | 30篇 | 400小时 | |
| 第一周 | 150/200 | 2/2 | 20/20 | |
| 第二周 | 200/400 | 1/3 | 20/40 | |
| 第三周 | 100/500 | 1/4 | 10/50 | |
| 第四周 | 200/700 | 1/5 | 15/65 | |
| 第五周 | 1486/2186 | 1/6 | 15/80 | |
| 第六周 | 1400/3586 | 1/7 | 18/98 | |
| 第七周 | 1400/5000 | 1/8 | 18/116 | |
| 第八周 | 1200/6200 | 1/9 | 15/131 | |
| 第九周 | 800/7000 | 2/11 | 12/143 |
计划学习时间:15小时
实际学习时间:12小时
参考资料
Android学习(四)的更多相关文章
- android学习四(Activity的生命周期)
要学好活动(Activity).就必需要了解android中Activity的声明周期.灵活的使用生命周期.能够开发出更好的程序,在android中是使用任务来管理活动的,一个任务就是一组存放在栈里的 ...
- android学习四---Activity和Intent
1.android项目资源深入了解 在深入学习android之前,先好好玩玩手机上的应用,大部分程序都有一个图标,点开图标,程序启动,一定时间后,程序会跳转到第一个界面,比如手机QQ,点开图标,会跳出 ...
- Android学习四:数据库操作
1前言 android中使用SQLite作为数据库,在进行相关的开发的时候不需要导入包.SQLite起符合SQL标准,也有自己的一些特性,是一个轻量级的数据库. 2代码 简单的数据库类封装 packa ...
- Android学习四、Android中的Adapter
一.Adapter的介绍 An Adapter object acts as a bridge between an AdapterView and the underlying data for t ...
- android 学习四 ContentProvider
1.系统自带的许多数据(联系人,本地信息等)保存在sqllite数据库,然后封装成许多ContentProvider来供其他程序访问. 2.对sqllite数据库的操作,可以在命令行通过adb工具登录 ...
- openfire Android 学习(四)----单人聊天和多人聊天(发送消息、接收消息)
一.单人聊天 1)发送消息: 首先要获取一个聊天窗口,getConnection()为获取连接connection的方法,调用getFriendChat()获取 [java] view plainco ...
- 五、Android学习第四天补充——Android的常用控件(转)
(转自:http://wenku.baidu.com/view/af39b3164431b90d6c85c72f.html) 五.Android学习第四天补充——Android的常用控件 熟悉常用的A ...
- 四、Android学习第四天——JAVA基础回顾(转)
(转自:http://wenku.baidu.com/view/af39b3164431b90d6c85c72f.html) 四.Android学习第四天——JAVA基础回顾 这才学习Android的 ...
- Android学习笔记(四十):Preference的使用
Preference直译为偏好,博友建议翻译为首选项.一些配置数据,一些我们上次点击选择的内容,我们希望在下次应用调起的时候依旧有效,无须用户再一次进行配置或选择.Android提供preferenc ...
- Android学习笔记(四十):Preference使用
Preference从字面上看偏好,译为首选项. 一些配置数据,一些我们上次点击选择的内容.我们希望在下次应用调起的时候依旧有效,无须用户再一次进行配置或选择.Android提供preference这 ...
随机推荐
- webpy学(ban)习(砖)记录
参考链接:http://blog.csdn.net/caleng/article/details/5712850 参考代码:http://files.cnblogs.com/files/tacyeh/ ...
- Storm实现实时大数据分析(storm介绍,与Hadoop比较,)
一.storm与Hadoop对比 Hadoop: 全量数据处理使用的大多是鼎鼎大名的hadoop或者hive,作为一个批处理系统,hadoop以其吞吐量大.自动容错等优点,在海量数据处理上得到了广泛的 ...
- 移动端常用UI框架
作为一个前端人员来说,总结几款相对来说不错的用于移动端开发的UI框架是非常必要的,以下几种移动端UI框架就能基本满足工作中开发需要,根据项目需求,选用合适的框架搭建项目,更能容易提高开发效率. 一.M ...
- C罗转会尤文图斯
皇家马德里头号球星C罗转会意甲尤文图斯,结束了9年的皇马生涯,已获得5座金球奖.
- azkaban的简单使用
简单使用 create job 右上角 project创建成功 创建job并上传至该project [root@localhost ~]# cat command.job #command.job t ...
- vue-cli3 一直运行 /sockjs-node/info?t= 解决方案
sockjs-node 是一个JavaScript库,提供跨浏览器JavaScript的API,创建了一个低延迟.全双工的浏览器和web服务器之间通信通道. 服务端:sockjs-node(https ...
- BufferedStream说明
BufferedStream并不是将所有内容都存放到内存中,而MemoryStream则是. BufferedStream必须跟其他流如FileStream结合使用,而MemoryStream则不用
- SSM商城项目(十二)
1. 学习计划 1.购物车实现 2.未登录状态下使用购物车 3.登录状态下使用购物车 2. 购物车的实现 2.1. 功能分析 1.购物车是一个独立的表现层工程. 2.添加购物车不要求登录.可以 ...
- python中文件处理--判断文件读取结束方法
一.readline函数 按行遍历读取文件的方法,通过这个方法,readline() 每次只读取一行,通常比 .readlines() 慢得多.仅当没有足够内存可以一次读取整个文件时,才应该使用 .r ...
- white-space:pre-wrap和word-break:break-all;
最近碰到了两个css属性,在此记录一下: 1.white-space :nomal规定文本中的文字空格和换行的情况 normal:默认.空白会被浏览器忽略. pre:空白会被浏览器保留.其行为方式类似 ...