《图像与图形处》PPT课件.ppt

上传人:牧羊曲112 文档编号:5484475 上传时间:2023-07-12 格式:PPT 页数:32 大小:1.64MB
返回 下载 相关 举报
《图像与图形处》PPT课件.ppt_第1页
第1页 / 共32页
《图像与图形处》PPT课件.ppt_第2页
第2页 / 共32页
《图像与图形处》PPT课件.ppt_第3页
第3页 / 共32页
《图像与图形处》PPT课件.ppt_第4页
第4页 / 共32页
《图像与图形处》PPT课件.ppt_第5页
第5页 / 共32页
点击查看更多>>
资源描述

《《图像与图形处》PPT课件.ppt》由会员分享,可在线阅读,更多相关《《图像与图形处》PPT课件.ppt(32页珍藏版)》请在三一办公上搜索。

1、第6章 图像与图形处理,网络资源:,QQ号:1281147324,QQ群:490420731(Android编程入门),本章知识结构图,逐帧动画,简单图片,作为一款注重用户体验的应用程序,当然离不开图形、图像的支持。在Android中对图形、图像提供了多种支持,一般使用Bitmap和BitmapFactory方法来封装和管理位图,通过Animation和AnimationDrawable类来保存和控制逐帧动画,使用Canvas和Path两个类绘制各种各样的图形,其中,Canvas可以绘制一些常见的规则图形,而Path则用于绘制一些不规则、自定义的图形。,静态图片即图片内容不发生变化的图片,通常

2、用于显示、增添界面美观,例如图标、背景等。对于这种类型的图片通常由一些图片控件进行处理,如ImageView等。动态图片即内容、大小、位置等会随着时间而变化的图片,一般采用不断重新绘制的方式来处理,每隔多少毫秒绘制一次,给人的感觉就是连续变化的。,2D绘图接口结构,图片不仅可以使用ImageView等图片控件显示,也可以作为Button、TextView等控件的背景。从广义的角度来看,Android应用中图片不仅包括*.png(首选)、*.jpg、*.gif(不建议)等格式的位图,也包括使用XML资源文件定义的各种Drawable对象。,逐帧动画是一种常见的动画形式,其原理是利用人的视觉的滞后

3、性,在时间轴的每帧上绘制不同的内容,然后在足够短的时间内进行播放,给人的感觉就如同连续的动画。,由于逐帧动画的帧序列内容不一样,这不但给制作增加了负担而且最终输出的文件量也很大,但它的优势也很明显:逐帧动画适合于表演细腻的动作。例如:人物走路、说话,动物奔跑等,6.1 简单图片和逐帧动画,逐帧动画,简单图片,6.1 简单图片和逐帧动画,6.1 简单图片和逐帧动画,程序结构,在Android中操作图片是通过Drawable类来完成的,Drawable类有很多子类,如BitmapDrawable类用于操作位图,AnimationDrawable类用于操作逐帧动画,ShapeDrawable类用于操

4、作形状。Android不允许图片资源的文件名中出现大写字母,且不能以数字开头。需要指出的是,只是一个int类型的常量,代表该Drawable对象的ID,如果在Java程序中需要获得实际的Drawable对象,则可以调用getResources()方法再调用Resources的getDrawable(int ID)方法来获取。,1.Drawable对象,6.1.1 简单图片,2.Bitmap和BitmapFactory,Bitmap用于表示一张位图,BitmapDrawable用于封装一个Bitmap对象。如果想将Bitmap对象包装成BitmapDrawable对象,可以调用BitmapDra

5、wable的构造方法。BitmapDrawable bd=new BitmapDrawable(Bitmap bitmap);如果需要获取BitmapDrawable包装的Bitmap对象,可以调用BitmapDrawable的getBitmap()方法。Bitmap bitmap=bd.getBitmap();,6.1.1 简单图片,Bitmap类常用方法,6.1.1 简单图片,BitmapFactory是一个工具类,该类所有的方法都是静态方法,这些方法可以从不同的数据源来解析、创建Bitmap对象,如资源ID、路径、文件和数据流等方式。,6.1.1 简单图片,BitmapFactory类常

6、用方法,3.实现示例,6.1.1 简单图片,6.1.1 简单图片,1.创建逐帧动画 创建逐帧动画的一般方法:先在程序中存放逐帧动画的素材,再在res文件夹下创建一个anim文件夹,再在该文件夹下创建一个XML文档,在元素中添加元素来定义动画的全部帧。,注意:Android也支持在代码中创建逐帧动画,调用AnimationDrawable的addFrame(Drawable frame,int duration)方法即可,类似于使用XML方法创建时的。,6.1.2 逐帧动画,其中:(1)android:oneshot属性定义动画是否循环播放。true-只播一次,不循环播放;false-循环播放。

7、(2)元素定义每一张图片的内容和播放持续时间。android:drawable指定内容,android:duration指定时间。(3)元素出现的顺序指定图片播放的顺序。,Android也支持在代码中创建逐帧动画:调用AnimationDrawable的addFrame(Drawable frame,int duration)方法即可,类似于使用XML方法创建时的。,6.1.2 逐帧动画,2.实现示例,6.1.2 逐帧动画,程序界面布局中定义了三个组件:两个Button和一个ImageView,两个Button用于控制逐帧动画的开始和停止,ImageView用于显示背景和逐帧动画。,2.实现示

8、例,6.1.2 逐帧动画,布局文件:activity_main.xml,2.实现示例,6.1.2 逐帧动画,两个按钮代码所在文件:/Bitmap_AnimationTest/src/com/example/bitmap_animationtest/MainActivity.java,2.实现示例,6.1.2 逐帧动画,该程序在使用android:src=anim/horse引用逐帧动画如果无需草地背景,也可以使用android:background=anim/horse“将逐帧动画作为背景显示,在代码中将“final AnimationDrawable anim=(AnimationDrawa

9、ble)img.getDrawable();”改为“final AnimationDrawable anim=(AnimationDrawable)img.getBackground();”。,首先在界面布局中添加ToggleButton控件。,6.1.3 示例讲解,要实现示例的在简单图片和逐帧动画界面中进行切换功能,需要利用ToggleButton控件。,然后在代码中为ToggleButton添加一个状态改变的监听器,状态为on时显示简单图片的界面,状态为off时显示逐帧动画的界面。,6.1.3 示例讲解,该示例完整的代码请参考codeschapter09Bitmap_AnimationTe

10、st,6.2 自定义绘图,除了可以使用程序中的图片资源外,Android应用还可以自行绘制图形,也可以在运行时动态地生成图片,前面我们所讲的自定义控件就用到了自定义绘图。,在Android应用中,Canvas和Paint是两个绘图的基本类,使用这两个类几乎可以完成所有的绘制工作。,Canvas:画布,2D图形系统最核心的一个类,作为参数传入onDraw()方法,完成绘制工作,该类提供了各种绘制方法,用于绘制不同的图形,例如点、直线、矩形、圆、文本、颜色、位图等。,Paint:画笔,用于设置绘制的样式、颜色等信息。,6.2 自定义绘图,第2章介绍了如何自定义控件本节介绍利用自定义方法进行绘图的相关类的使用。示例:自定义绘图的程序。,程序清单:codeschapter09CanvasTest,Canvas类常用方法,6.2.1 Canvas和Paint,Paint类常用方法,6.2.1 Canvas和Paint,Paint类常用方法,6.2.1 Canvas和Paint,Shader类的子类,6.2.2 Shader,Path类常用方法,6.2.3 Path和PathEffect,PathEffect类的子类,示例没有采用XML进行界面布局,而是直接使用代码布局,6.2.4 示例讲解,该示例完整的代码请参考codeschapter09CanvasTest,

展开阅读全文
相关资源
猜你喜欢
相关搜索

当前位置:首页 > 生活休闲 > 在线阅读


备案号:宁ICP备20000045号-2

经营许可证:宁B2-20210002

宁公网安备 64010402000987号