- 浏览: 261263 次
- 性别:
- 来自: 济南
文章分类
- 全部博客 (303)
- c (31)
- c++ (16)
- java (18)
- c# (1)
- python (3)
- java web (6)
- oracle (7)
- sqlserver (2)
- mysql (2)
- android (24)
- android系统 (15)
- android多媒体部分 (15)
- android游戏 (12)
- linux (26)
- javaScript (1)
- ajax (1)
- node JS (2)
- html (5)
- apache (3)
- jboss (1)
- weblogic (0)
- 通信协议 (10)
- 云计算 (1)
- 分布式 (5)
- ejb (1)
- webservice (5)
- 设计模式 (16)
- JNI (6)
- swing (13)
- 版本控制 (1)
- UML (1)
- xml (4)
- spring (5)
- hibernate (5)
- struts1 (3)
- struts2 (4)
- ibatis (0)
- tomcat (2)
- 心得体会 (1)
- css (1)
- 嵌入式 (41)
- arm体系结构 (10)
1 使用内置的camera应用程序捕获图像
/**
* 拍摄一张照片保存到sd卡上
*/
private void takeAndSaveImage() {
// 取得路径
imageFilePath = Environment.getExternalStorageDirectory().getAbsolutePath() + "/myfavoritepicture.jpg";
Log.i("tag", "sd card path:" + imageFilePath);
File imageFile = new File(imageFilePath);
Uri imageFileUri = Uri.fromFile(imageFile);
Intent i = new Intent(android.provider.MediaStore.ACTION_IMAGE_CAPTURE);
i.putExtra(android.provider.MediaStore.EXTRA_OUTPUT, imageFileUri);
startActivityForResult(i, CAMERA_RESULT);
}
/**
* 显示一张相片
*/
private void displayImage() {
// 取得屏幕大小
Display display = getWindowManager().getDefaultDisplay();
int dw = display.getWidth();
int dh = display.getHeight();
Log.i("tag", "dw:" + dw + " dh:" + dh);
// 加载图像的尺寸而不是图像本身
bmpOptions = new BitmapFactory.Options();
// 如果为true,只须返回图像的范围,不须尝试解码图像本身
bmpOptions.inJustDecodeBounds = true;
// options.inSampleSize = 8;
Bitmap bitmap = BitmapFactory.decodeFile(imageFilePath, bmpOptions);
int hRatio = (int) Math.ceil(bmpOptions.outHeight / (float) dh);
int wRatio = (int) Math.ceil(bmpOptions.outWidth / (float) dw);
Log.i("tag", "hRatio" + hRatio);
Log.i("tag", "wRatio" + wRatio);
// 如果两个比率都大于1
// 那么图像的一条边将大小屏幕
if (hRatio > 1 && wRatio > 1) {
if (hRatio > wRatio) {
Log.i("tag", "hRatio" + hRatio);
// 若高度比率更大,则根据它缩放
bmpOptions.inSampleSize = hRatio;
} else {
Log.i("tag", "wRatio" + wRatio);
// 反之则根据宽度缩放
bmpOptions.inSampleSize = wRatio;
}
}
// 对图像进行解码
bmpOptions.inJustDecodeBounds = false;
bitmap = BitmapFactory.decodeFile(imageFilePath, bmpOptions);
// 显示图片
imageView.setImageBitmap(bitmap);
}
注:所需权限
<uses-permission android:name="android.permission.CAMERA" />
2 图像存储和元数据
获取图像的uri
使用MediaStore存储图像
/**
* 取得图像的uri
*
* 如果是存储在SD卡上 EXTERNAL_CONTENT_URI 如果是存储在设备内存中 INTERNAL_CONTENT_URI
*/
private void getImageURI() {
// 在contentValues映射中保存图像的名称和描述
ContentValues contentValues = new ContentValues();
contentValues.put(Media.DISPLAY_NAME, "this is a test title");
contentValues.put(Media.DESCRIPTION, "this is a test description");
contentValues.put(Media.MIME_TYPE, "image/jpeg");
imageFileUri = getContentResolver().insert(Media.EXTERNAL_CONTENT_URI, contentValues);
// 方法二:后期添加元数据
// ContentValues contentValues = new ContentValues();
// contentValues.put(Media.DISPLAY_NAME, "this is a test title");
// contentValues.put(Media.DESCRIPTION, "this is a test description");
// contentValues.put(Media.MIME_TYPE, "image/jpeg");
// getContentResolver().update(imageFileUri, contentValues, null, null);
Intent intent = new Intent(android.provider.MediaStore.ACTION_IMAGE_CAPTURE);
intent.putExtra(android.provider.MediaStore.EXTRA_OUTPUT, imageFileUri);
startActivity(intent);
}
使用MediaStore检索图像章
/**
* 检索保存的图像
*
* @throws FileNotFoundException
*/
private void findBitmap() throws FileNotFoundException {
BitmapFactory.decodeStream(getContentResolver().openInputStream(imageFileUri), null, bmpOptions);
}
发表评论
-
android多媒体学习笔记二
2012-09-04 10:53 814实现SurfaceHolder.Callback ,P ... -
android多媒体学习笔记三___图像合成
2012-09-05 11:36 626/** * 图像合成 * * @time 下午06:21 ... -
android多媒体部分学习笔记四___ Matrix
2012-09-05 11:40 729/*** 图像的缩放和旋转 Matrix** 1 0 0 x= ... -
android多媒体部分学习笔记五----audio
2012-09-08 16:08 719/*** 打开内置音乐播放器*/private void ge ... -
android多媒体部分学习笔记六----音频录制 mediaRecorder
2012-09-08 16:12 685/** * * 使用意图捕获音频 * * @time ... -
android多媒体部分学习笔记七------音频录制 mediaRecorder
2012-09-08 16:13 764/** * 自定义捕获音频 * * @time 下午12 ... -
android多媒体部分学习笔记八------音频录制 mediaRecorder
2012-09-08 16:14 778/** * 原始音频的播放和录制 * * audio ... -
android 多媒体部分学习笔记九----数字音频合成
2012-09-09 12:43 874/** * 数字音频合成 * * @time 下午12: ... -
android 多媒体部分学习笔记十 可视化频率(频谱)
2012-09-09 23:43 3237/** * 可视化频率 * * @time 下午12 ... -
android 多媒体部分学习笔记十--简单视频播放
2012-09-10 17:53 773/** * 简单播放 * * @time 下午05:15 ... -
android 多媒体部分学习笔记十二----mediaplay自定义播放器
2012-09-10 22:31 1704/** * * 自定义播放器 * * @time 下午 ... -
android 多媒体部分学习笔记十三----mediaStore 检索视频
2012-09-12 00:12 1028/** * mediaStore检索视频 * * @ti ... -
android 多媒体部分学习十四---网络视频播放(http/rtsp)
2012-09-12 14:36 1846/** * 网络视频播放 * * openCore * ... -
android 多媒体部分学习笔记十五-----视频录制
2012-09-12 15:02 777/** * 调用系统视频录制 * * @time 下午0 ...
相关推荐
这个"Android_学习笔记.zip"文件很可能包含了一个详细的Android开发学习路径和关键知识点的总结。下面将基于这个主题,详细讲解Android开发的一些核心概念和技术。 首先,Android是Google开发的一款开源操作系统,...
Android学习笔记全全整理,是针对想要深入理解并掌握Android开发技术的学习者们的一份宝贵资源。这份笔记涵盖了从基础到高级的多个方面,旨在帮助读者建立起完整的Android知识体系。以下将详细介绍其中可能包含的...
"Android学习笔记1"这个压缩包文件很可能是开发者在实践中积累的经验和代码示例的集合,对于初学者和有经验的开发者来说,都是宝贵的资源。这里,我们将深入探讨Android开发的一些关键概念和技术。 首先,Android是...
【Mono for Android学习笔记全套】是一份详尽的资源,旨在帮助开发者掌握使用Mono和C#进行Android应用开发的技术。Mono是.NET框架的一个开源实现,它使得C#开发者能够在多种平台上,包括Android,编写和运行应用程序...
在学习 Android 开发的过程中,理解 Activity 的生命周期、熟练掌握各种布局的使用、熟悉资源管理以及学会处理多媒体数据是至关重要的。随着经验的积累,你将能够开发出功能丰富的 Android 应用程序。
【Android学习笔记】 Android是一个开源的移动操作系统,主要应用于智能手机和平板电脑。它由Google主导并开源,基于Linux内核。学习Android开发,你需要熟悉Java或Kotlin语言,理解Android SDK、Android Studio...
【Android学习笔记】 Android是一种基于Linux内核的开源操作系统,主要应用于移动设备,如智能手机和平板电脑。这个“很好的android学习笔记”包含了作者在学习Android开发过程中积累的宝贵经验,旨在帮助初学者或...
根据提供的文件内容,这是一份详细的Android学习笔记,涵盖了从基础入门到高级特性的各个知识点。以下是从这些内容中提取的知识点: 1. Android入门基础: - 建立第一个App:介绍如何创建Android项目和执行程序。 ...
根据给定的信息,“黎活明Android学习笔记”主要记录了Android开发的基础步骤和技术要点,包括安装Android开发环境、创建虚拟设备、构建简单的Android应用程序以及理解应用程序的目录结构等内容。接下来,我们将对...
以上只是Android开发教程笔记可能涵盖的部分内容,具体的学习过程中还会涉及更多高级主题,如动画、通知、推送服务、多媒体处理、蓝牙通信、安全性、国际化等。这份完全版的教程应该会详细讲解这些知识点,并提供...
在Android学习之旅中,初学者会遇到各种概念和实践技巧,这份"Android学习笔记总结初学者必看"的文档正是为了帮助他们系统性地掌握这一领域。以下是对这份压缩包内容的详细解读。 首先,Android是由Google开发的一...
【Android学习笔记】是针对Android开发者的详尽学习资源,涵盖了Android开发的基础到高级概念,旨在帮助初学者和有经验的开发者深入理解Android操作系统的工作原理和应用开发技术。以下是一些核心知识点的概述: 1....
在Android系统相关学习笔记中,我们可以深入探讨这个广泛而复杂的移动操作系统的核心概念和技术。Android以其开源性和灵活性,吸引了大量的开发者和爱好者。以下是一些关键的知识点: 1. **Android架构**:Android...