##多媒体编程
文本、图片、音频、视频
###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 缩放图片并加载到内存中
- 拿到图片宽高
- 拿到手机屏幕的宽高
- 得到合适的比例值
- 缩放图片显示在手机上
###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 录像机应用 采用隐式意图打开系统相机应用程序的录像界面