教材学习内容总结

图形和定制视图

硬件加速

  • 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学习(四)的更多相关文章

  1. android学习四(Activity的生命周期)

    要学好活动(Activity).就必需要了解android中Activity的声明周期.灵活的使用生命周期.能够开发出更好的程序,在android中是使用任务来管理活动的,一个任务就是一组存放在栈里的 ...

  2. android学习四---Activity和Intent

    1.android项目资源深入了解 在深入学习android之前,先好好玩玩手机上的应用,大部分程序都有一个图标,点开图标,程序启动,一定时间后,程序会跳转到第一个界面,比如手机QQ,点开图标,会跳出 ...

  3. Android学习四:数据库操作

    1前言 android中使用SQLite作为数据库,在进行相关的开发的时候不需要导入包.SQLite起符合SQL标准,也有自己的一些特性,是一个轻量级的数据库. 2代码 简单的数据库类封装 packa ...

  4. Android学习四、Android中的Adapter

    一.Adapter的介绍 An Adapter object acts as a bridge between an AdapterView and the underlying data for t ...

  5. android 学习四 ContentProvider

    1.系统自带的许多数据(联系人,本地信息等)保存在sqllite数据库,然后封装成许多ContentProvider来供其他程序访问. 2.对sqllite数据库的操作,可以在命令行通过adb工具登录 ...

  6. openfire Android 学习(四)----单人聊天和多人聊天(发送消息、接收消息)

    一.单人聊天 1)发送消息: 首先要获取一个聊天窗口,getConnection()为获取连接connection的方法,调用getFriendChat()获取 [java] view plainco ...

  7. 五、Android学习第四天补充——Android的常用控件(转)

    (转自:http://wenku.baidu.com/view/af39b3164431b90d6c85c72f.html) 五.Android学习第四天补充——Android的常用控件 熟悉常用的A ...

  8. 四、Android学习第四天——JAVA基础回顾(转)

    (转自:http://wenku.baidu.com/view/af39b3164431b90d6c85c72f.html) 四.Android学习第四天——JAVA基础回顾 这才学习Android的 ...

  9. Android学习笔记(四十):Preference的使用

    Preference直译为偏好,博友建议翻译为首选项.一些配置数据,一些我们上次点击选择的内容,我们希望在下次应用调起的时候依旧有效,无须用户再一次进行配置或选择.Android提供preferenc ...

  10. Android学习笔记(四十):Preference使用

    Preference从字面上看偏好,译为首选项. 一些配置数据,一些我们上次点击选择的内容.我们希望在下次应用调起的时候依旧有效,无须用户再一次进行配置或选择.Android提供preference这 ...

随机推荐

  1. eShopOnContainers 看微服务⑤:消息通信

    1.消息通信 传统的单体应用,组件间的调用都是使用代码级的方法函数.比如用户登录自动签到,增加积分.我们可以在登录函数调用积分模块的某个函数,为了解耦我们使用以来注入并放弃new Class()这种方 ...

  2. 利用jvisualvm使用btrace进行线上调试案例

    用途:btrace主要用于线上调试.通过btrace,可在不改动代码的前提下,方便的发现以下问题: 1.定位性能慢的接口服务: 2.实时打印堆栈信息,定位死锁位置: 3.定位占用大量内存空间的代码块: ...

  3. 【python】python中的enumerate()函数【笔记】

    结合实例来理解比较好,网上找了一下这个enumerate用法,自己也记录一下加深印象 看一下相关链接: 链接1:http://www.cnblogs.com/danielStudy/p/6576040 ...

  4. es6 和 python 语法比较

    http://www.linchaoqun.com/html/cms/content.jsp?id=1509528630774 Python3笔记:Python与ECMAScript部分语法对比 ht ...

  5. python2.7 Cheetah You don't have the C version of NameMapper installed

    问题:You don't have the C version of NameMapper installed sudo vi /usr/lib/python2.7/site-packages/Che ...

  6. pydev+Eclipse搭建教程

    学习Python一直用IDLE,一直再想有没有一种类似Eclipse那样软件可以编辑Python.遂在Eclipse上安装pydev 本文是在Eclipse环境已搭建好的基础上进行pydev的插件安装 ...

  7. FPGA——按键(二)

    直接上源码: module key_led( input sys_clk , //50Mhz系统时钟 input sys_rst_n, //系统复位,低有效 :] key, //按键输入信号 :] l ...

  8. pymysql -转自https://www.cnblogs.com/chenhaiming/p/9883349.html#undefined

    PyMysql的几个重要方法 connect函数:连接数据库,根据连接的数据库类型不同,该函数的参数也不相同.connect函数返回Connection对象. cursor方法:获取操作数据库的Cur ...

  9. win10以管理员身份运行cmd方法

    win10以管理员身份运行cmd方法 win8win10以管理员身份运行cmd方法1.直接到 C:\Windows\System32 下面找cmd.exe 右键以管理员方式打开就可以了 2.按WIN+ ...

  10. json与csv的基础用与法

    json库是处理json格式的python标准库 有两个过程: 编码(encoding):将python数据类型转换为json格式的过程 解码(decoding):从json格式中解析数据得到的pyt ...