Skip to content

Latest commit

 

History

History
113 lines (82 loc) · 2.7 KB

第十天_多媒体编程.md

File metadata and controls

113 lines (82 loc) · 2.7 KB

##多媒体编程

文本、图片、音频、视频

#图片的处理

###01 计算机表示图形的形式

图片的大小 = 图片的总像素 * 每个像素的大小

Android用ARGB表示颜色信息:每个像素占4个字节

1. bmp高质量保存
	单色:只能表示两种颜色,黑和白
	  需要使用两个数字:0和1
	  需要使用一个长度为1的二进制数字
	  每个像素占用1/8个字节
	16色:只能表示16种颜色
	  需要16个数字:0-15
	  换算成二进制表示:0000 - 1111
	  需要一个长度为4的二进制数字
	  每个像素占用1/2个字节
	256色:只能表示256种颜色
	  需要256个数字:0-255
	  二进制表示:0000 0000 - 1111 1111
	  需要长度为8的二进制数字
	  每个像素占用1个字节
	24位色:
	  每个像素需要24位
	  每个像素占用3个字节
	  R:0-255
	  G:同上
	  B:同上

2. png 较高的质量保存图片
	- 图片压缩算法。把相似的颜色压缩在一起。
3. jpg 良好的质量保存
	- 图形压缩算法。把相似的颜色给合并在一起,用同一种颜色代替。

###02 加载大图片的OOM异常 Out of memory on a 30720012-byte allocation. 29M

###03 缩放图片并加载到内存中

  1. 拿到图片宽高
  2. 拿到手机屏幕的宽高
  3. 得到合适的比例值
  4. 缩放图片显示在手机上

###04 在内存中创建原图的副本(重点)

  • 原因:要给图片加特效,Android不允许直接操作原图,只能操作原图的副本

  • 创建步骤:

      1. 拿到原图
      2. 创建和原图一样样的空白纸张
      3. 把空白的纸张铺在画板上
      4. 创建画笔
      5. 开始画画
    

###05 图形处理的API(重点)

1.缩放
2.平移
3.旋转
4.镜面
5.倒影

###06 画画板 获取手指触摸手机屏幕的XY坐标,然后用线连接起来

###07 撕衣服

原理:在界面上放两张图片,没有穿衣服的图片显示在下面,穿衣服的图片是显示在上面.
	 手指在屏幕滑动的过程中,把手所到之处的像素点改变成透明色.

#音频

###08 音乐播放器API MediaPlayer

###09影音播放器的生命周期函数

状态:

1.空闲:reset() 重新设置,new MediaPlayer()
2.初始化:setDataSource()设置播放的数据资源
3.准备:prepare(),prepareAsync()准备方法
4.播放:start()播放
5.播放完成:一直播放
6.停止:stop()停止
7.暂停:pause()暂停
8.结束:release()释放
9.错误:程序抛出异常

#视频

###10 视频播放器videoview

#照相机

###11 照相机拍照(重点) 采用隐式意图打开系统相机应用程序的拍照界面

###12 录像机应用 采用隐式意图打开系统相机应用程序的录像界面