您的位置:首页 > 移动开发 > Android开发

Android学习笔记(十一)

2015-08-23 00:14 351 查看

Android学习笔记(十一)

摄像头与相册

调用摄像头拍照

创建一个File对象,用于拍照后存储图片。传入两个参数,第一个参数为存储地址,第二个参数为存储文件名称。

调用Environment的getExternalStorageDirectory()方法获取SD卡的根目录地址作为第一个参数。

调用Uri的fromFile()方法将File对象转换为Uri方法

构建一个Intent的putExtra()方法指定图片的输出地址,填入得到的Uri对象。

最后调用startActivityForResult()来启动活动。

在onActivityResult()方法中,如果拍照成功,构建一个新的Intent,把action指定为com.android.camera.action.CROP。给这个Intent设置一些必要的属性后,再次调用startActivityForResult()来启动剪裁活动。

程序回调到onActivityResult()方法后,调用用BitmapFactory的decodeStream()方法将output_image.jpg这张照片解析成Bitmap对象,然后把它设置到ImageView中显示出来。

最后进行声明
android.permisson.WRITE_EXTERNAL_STOPAGE


从相册中选择照片

创建一个File对象用于存储相册中选择的图片

构建一个Intent对象,将其action指定为android.intent.action.GET_CONTENT.

给Intent设置一些必要参数,包括是否允许缩放和剪裁,图片的输出位置。

调用startActivityForResult()方法,给第二个参数传入CROP_PHOTO常量,直接调用前一个显示图片的逻辑。

播放音频

创建一个MediaPlayer对象,然后在onCreate()方法中调用了initMediaPlayer()方法为MediaPlayer对象进行初始化操作。

在initMediaPlayer中创建一个File对象来制定音频路径,依次调用setDataSource()方法和prepare()方法为MediaPlayer做好播放准备。

点击Play按钮时会进行判断,如果当前没有播放音频,则调用start()方法开始播放,当点击pause按钮时会判断,如果真正播放,则会暂停播放,当点击Stop按钮时,如果正在播放,则会调用reset()方法将MediaPlayer重置为刚创建的状态,然后重新调用initMediaPlayer()方法

最后在onDestroy()方法中分别调用stop()和release()方法,将与MediaPlayer相关的资源释放掉。

方法名功能描述
setDataSource()设置要播放音频文件的位置
prepare()在开始播放之前调用这个方法完成准备工作
start()开始或继续播放音频
pause()暂停播放音频
reset()将MediaPlayer对象重置到刚刚创建的状态
seekTo()从指定位置开始播放音频
stop()停止播放音频
release()释放掉与MediaPlayer对象相关资源
isPlaying()判断当前MediaPlayer是否正在播放音频
getDuration()获取载入的音频文件的时长
- 播放视频:使用方式与播放音频相似

方法名功能描述
setVideoPath()设置要播放视频文件的位置
start()开始或继续播放视频
pause()暂停播放视频
resume()视频从头播放
seekTo()从指定位置开始播放视频
isPlaying()判断当前是否正在播放视频
getDuration()获取载入的视频文件的时长
- 服务(Service):是Android中实现程序后台运行的解决方案,它适用于不需要和用户交互且需要长时间运行的任务。

- 线程的基本用法

1. 定义一个线程:新建一个类继承自Thread,重写父类的run()方法,并在里面编写耗时逻辑。也可以通过Runnable接口的方式来定义一个线程。

2. 启动一个线程:如果是通过继承,则在线程的实例中调用start()方法。如果是调用接口创建,则通过new Thread(XXX).start();
内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签: