多媒体编程
1、加载大图片(*)
android虚拟机根据所建模拟器版本分配内存对空间(2.3(level10)默认16M),加载图片需要的内存空间不是按图片大小来算的,而是按像素点的多少来算的(图片分辨率*每个像素所占字节)。图片加载到内存中需要把每一个像素加载到内存中,所以堆存的要求非常高,一不小心就会造成OOM(OutOfMemoryError)内存溢出致命错误。
例如:
当前有一张图片,大小仅为1M,但其规格为3000*2000,现在需要加载此图片总像素数 =3000*2000=6000000,所耗内存大小3000*2000*singleData(单个像素,所占空间大小)
一般单个像素单位种类如下:
ARGB_4444:2b
ARGB_8888:4b
RGB_565:4b
解决方案:
java代码可以对图片进行比例缩放
假设:
图片宽高:3000*2000
屏幕宽高:300*400
计算(原图片和手机屏幕)缩放比例: 10/5,选择比例值大于1,且最大。
缩放后的图片所占空间:300*200*singleData
1.1、实现图片的缩放加载
2、图片加水印
2.1、图片加水印代码
3、图片特效
3.1、缩放
3.2、镜面
3.3、倒影
3.4、旋转
3.5、位移
4、图片颜色处理
4.1、颜色过滤器
4.2、实现图片美化功能
5、案例-随手涂鸦
5.1、实现原理
5.2、代码实现
6、案例-撕衣服游戏
6.1、实现原理
6.2、代码实现
7、音频播放
7.2、SoundPool
7.3、使用两种方式播放音乐
7.4、案例-音乐播放器
8、视频播放器
8.2、使用VideView空间显示视频
9、传感器
9.1、android中常见的传感器
9.2、传感器的使用
9.3、案例-公交防盗
10、摄像头
10.1、调用系统摄像头实现照相和摄像机
10.2、编码实现照相机功能
10.3、编码实现摄像功能
11、获取图库中的图片
12、获取Exif信息
13、结合工作和面试