第7章

7.1 使用简单图片

7.1.1 使用Drawable对象

7.1.2 Bitmap和BitmapFactory

7.2 绘图

7.2.1 Android绘图基础:Canvas、Paint等

Android的绘图应该继承View组件,并重写onDraw(Canvas canvas) 方法即可,Canvas代表了“依附”于指定View的画布。表7.1 Canvas的绘制方法

Paint代表了Canvas上的画笔,Paint类主要用于设置绘制风格,包括画笔颜色、画笔粗细、填充风格等。

7.2.2 Path类

可以预先在View上将N个点连成一条“路径” ,然后调用Canvas的drawPath(path,paint)即可沿着路径绘制图形。

PathEffect定义绘制效果,它还有一些子类。

7.2.3 绘制游戏动画

(源码\07\7.2\HandDraw  采用双缓冲实现画图板)

7.3 图形的特效处理

7.3.1 使用Matrix控制变换

Matrix是一个矩形工具类,它本身不能对图像或组件进行变换,但它可与其他API结合来控制图形、组件的变换。

7.3.2 使用drawBitmapMesh扭曲图像

7.3.3 使用Shader填充图形

7.4 逐帧(Frame)动画

7.4.1 AnimationDrawable与逐帧动画  逐帧动画通常采用XML资源文件进行定义。

AnimationDrawable代表的动画默认是不播放的,必须在程序中启动动画播放才可以。

7.5 补间(Tween)动画

补间动画就是开发者只需要指定动画开始、动画结束,而动画变化的中间帧由系统计算、补齐。

7.5.1 Tween动画与Interpolator

7.5.2 位置、大小、旋转度、透明度改变的补间动画

7.5.3 自定义补间动画

7.6 属性动画

7.6.1 属性动画的API

7.6.2 使用属性动画

7.7 使用SurfaceView实现动画

7.7.1 SurfaceView的绘图机制

疯狂Android讲义 - 学习笔记(六)的更多相关文章

  1. 疯狂Android讲义 - 学习笔记(五)

    第五章 Android使用统一的Intent对象来封装“启动意图”,不管是启动Activity.Service组件.或者BroadcastReceiver等,提供了一致的编程模型.Intent设计有点 ...

  2. 疯狂Android讲义 - 学习笔记(八)

    第10章 Service与BroadcastReceiver 10.1 Service简介 Service组件也是可执行的程序,有自己的生命周期,创建.配置Service与创建.配置Activity的 ...

  3. 疯狂Android讲义 - 学习笔记(七)

    第8章 Android数据存储与IO  Java IO的数据存储可以移植到Android应用开发上来,Android系统还提供了一些专门的IO API. Android系统内置了SQLite数据库,S ...

  4. 疯狂Android讲义 - 学习笔记(四)

    Android应用通常有多个Activity,多个Activity组成Activity栈,当前活动的Activity位于栈顶.Activity相当于Java Web开发的Servlet.当Activi ...

  5. 疯狂Android讲义 - 学习笔记(三)

    Android的事件处理 3.1 Android提供了两套事件处理机制:基于监听的事件处理.基于回调的事件处理. 3.2 基于监听的事件处理 3.2.1 监听的处理模型  主要涉及三类对象:Event ...

  6. 疯狂Android讲义 - 学习笔记(二)

    Android应用的用户界面编程 2.1 界面编程与视图(View)组件 Android应用的绝大部分UI组件放在android.widget.android.view包及其子包中,所有UI组件都继承 ...

  7. 疯狂Android讲义 - 学习笔记(一)

    常用开发工具的用法 android : 启动Android SDK管理器 android --help  查看具体用法 android create avd -n t10 -t 10 -b armea ...

  8. 【疯狂Java讲义学习笔记】【流程控制与数组】

    [学习笔记]1.switch语句后的expression表达式的数据类型只能是byte.short.char.int四个整数类型.String(Java 7后才支持)和枚举类型. 2.数组的长度不可变 ...

  9. 【疯狂Java讲义学习笔记】【数据类型与运算符】

    [学习笔记]1.8bit = 1byte,4byte = 1word.Java中的整型数据有byte(1字节),short(2字节),int(4字节),long(8字节).Java中的浮点数据有flo ...

随机推荐

  1. SQL 数字分割的字符串

    :表示包含正数或者负数.或者0 即表示,数字的字段! select * from 表名 where isnull(字段名,'')<>'' 同时排除空值和null的情况 select coo ...

  2. My family No.1

    Ok, in my family, there are seven people including my father, mother, three sisters, one brother and ...

  3. final阶段140字评论1

    1.约跑app         此次演讲增加了摄像头演示的功能,所以界面可以看得更清楚,演示的比上次完整,流畅,约跑这个项目感觉对于我们颇有使用价值,大家现在都热爱跑                 ...

  4. Cocos2d-x PluginX (二)增加新的Plugin

    创建Plugin目录 第一步,在plugin/plugins下,目录需要严格按照如下规范实现: plugin/plugins/alipay/proj.android /proj.ios 因为publi ...

  5. CAD迷你看图

    CAD迷你看图http://www.aec188.com/CAD迷你看图 2016R12超快.超小的CAD多功能看图工具,完全脱离AutoCAD浏览R14-R2016各版本DWG/DXF/DWF的二三 ...

  6. 《Tips for Optimizing C/C++ Code》译文

    前不久在微博上看到一篇非常好的短文讲怎样对C/C++进行性能优化,尽管其面向的领域是图形学中的光线跟踪,可是还是具有普遍的意义,将其翻译成中文,希望对大家写高质量代码有帮助. 1.     牢记阿姆达 ...

  7. 关于Tarjan(2)

    Tarjan有第二个神奇的用法,求强连通分量!!!!!!!!!!!!!!!!!!! 同样利用了dfn:dfs序,low:能回到的最早祖先的dfn: 废话少说 上板子 #include<iostr ...

  8. Selenium1工作原理

    内容主要转自:Selenium工作原理 http://blog.csdn.net/five3/article/details/6790925 简介: Selenium 1.0中可以使用多种语言编程,当 ...

  9. 5 秒创建 k8s 集群 - 每天5分钟玩转 Docker 容器技术(115)

    据说 Google 的数据中心里运行着超过 20 亿个容器,而且 Google 十年前就开始使用容器技术. 最初,Google 开发了一个叫 Borg 的系统(现在命令为 Omega)来调度如此庞大数 ...

  10. vue路由懒加载

    大项目中,为了提高初始化页面的效率,路由一般使用懒加载模式,一共三种实现方式.(1)第一种写法: component: (resolve) => require(['@/components/O ...