08 2014 档案

7.2.6 MediaRecorder示例
摘要:下面是使用MediaRecorder类的定制音频捕获和播放示例的完整代码。 1 package com.nthm.androidtestActivity; 2 3 import java.io.File; 4 import java.io.IOException; 5 import com.nth... 阅读全文

posted @ 2014-08-30 11:37 宁静致远,一览众山小 阅读(301) 评论(0) 推荐(0) 编辑

7.2.5 MediaRecorder状态机
摘要:类似于MediaPlayer,MediaRecorder可作为一个状态机进行操作。可参考Android API参考手册(http://developer.android.com/reference/android/media/MediaRecorder.html)中MediaRecorder页的状态... 阅读全文

posted @ 2014-08-30 10:31 宁静致远,一览众山小 阅读(241) 评论(0) 推荐(0) 编辑

7.2.4 MediaRecorder输出和录制
摘要:最后,需要以想要录制到其中的文件位置调用setOutputFile。以下代码片段使用File.createTempFile,在应用程序(其需要在SD卡上存储文件)的首选位置上创建了一个文件。1 File file=new File(PATH);2 file.mkdir... 阅读全文

posted @ 2014-08-30 10:28 宁静致远,一览众山小 阅读(391) 评论(0) 推荐(0) 编辑

7.2.3 MediaRecorder音频编码器
摘要:在设置输出格式之后,可以调用setAudioEncoder方法来设置应该使用的编解码器。可能的值指定为MediaRecorder.AudioEncoder类中的常量;除了DEFAULT之外,只存在一个其他的值:MediaRecorder.AudioEncoder.AMR_NB,这是自适应多速率窄带编... 阅读全文

posted @ 2014-08-30 10:11 宁静致远,一览众山小 阅读(302) 评论(0) 推荐(0) 编辑

7.2.2 MediaRecorder输出格式
摘要:根据顺序,下一个调用的方法是setOutputFormat。这个方法采用在MediaRecorder.OutputFormat内部类中指定的常量值作为参数。 MediaRecorder.OutputFormat.MPEG_4:这个常量指定输出的文件将是一个MPEG_4文件。它可能同时包含音频和视频轨... 阅读全文

posted @ 2014-08-30 10:05 宁静致远,一览众山小 阅读(2225) 评论(0) 推荐(0) 编辑

7.2.1 MediaRecorder 音频源
摘要:在实例化MediaPlayer之后,应该调用的第一个方法是setAudioSource。setAudioSource采用一个在AudioSource内部类中定义的常量作为参数。我们通常希望使用的常量是MediaRecorder.AudioSource.MIC,但是需要注意的是,MediaRecord... 阅读全文

posted @ 2014-08-30 09:58 宁静致远,一览众山小 阅读(479) 评论(0) 推荐(0) 编辑

7.2 定制音频捕获
摘要:当然,通过意图触发录音机不是捕获音频的唯一方法。在Android SDK中还包含了一个MediaPlayer类,可以用它来建立自己的音频录制功能,从而能够提供更多的灵活性,如控制录音音频的时间长度等。 MediaPlayer类可用于音频和视频的捕获。在构造一个MediaPlayer对象之后,为了捕获... 阅读全文

posted @ 2014-08-30 09:42 宁静致远,一览众山小 阅读(284) 评论(0) 推荐(0) 编辑

7.1 通过意图捕获音频
摘要:在一个应用程序中,实现音频录制功能的最简单的方式是通过一个意图利用已有的、提供录制功能的应用程序。针对音频,Android附带一个能够以这种方式触发的录音机应用程序。在MediaStore.Audio.Media类中存在的常量RECORD_SOUND_ACTION可用来实现创建该意图的动作。以下是触... 阅读全文

posted @ 2014-08-29 16:27 宁静致远,一览众山小 阅读(285) 评论(0) 推荐(0) 编辑

第7章 音频捕获
摘要:开发音频播放应用程序并不是在Android上使用音频的唯一方式,还可以编写关于音频捕获的应用程序。本章将探讨可用于音频捕获的3种不同的方法,每个方法都具有相对的优势和弱点:第一种方法使用意图,它最简单但最不灵活;第二种方法使用MediaRecorder类,它更加难以使用,但是提供了更多的灵活性;最后... 阅读全文

posted @ 2014-08-29 16:24 宁静致远,一览众山小 阅读(209) 评论(0) 推荐(0) 编辑

6.3 本章小结
摘要:正如我们在本章中所看到的那样,Android丰富的高级音频功能使得它不仅仅是一种播放设备。除此之外,它还使得开发人员能够利用网上提供的各种音频,从个人MP3文件到在线广播流。第7章将介绍如何将Android用作音频生产设备。 阅读全文

posted @ 2014-08-29 16:11 宁静致远,一览众山小 阅读(139) 评论(0) 推荐(0) 编辑

6.2.3 RTSP音频流
摘要:Android通过MediaPlayer支持另外一种流式音频协议。它称为实时流协议(Real Time Streaming Protocol)或RTSP。Protocol已经使用了相当长的一段时间,它在90年代中期到末期由于RealNetworks而获得流行,因为RealNetworks用在音频和... 阅读全文

posted @ 2014-08-29 16:08 宁静致远,一览众山小 阅读(1348) 评论(0) 推荐(0) 编辑

6.2.2 通过HTTP的流式音频
摘要:在线音频常用的在线传输方式之一是通过HTTP流。有多种流方法属于HTTP流方法的分支,包括服务器推送,这在历史上一直用于在浏览器中不断的刷新网络摄像头图像进行显示;以及一系列由Apple、Adobe和Microsoft等公司提出的新方法,用于他们各自的媒体播放应用程序。通过HTTP实现在线音频流的主... 阅读全文

posted @ 2014-08-29 13:39 宁静致远,一览众山小 阅读(2893) 评论(0) 推荐(0) 编辑

6.2.1 HTTP音频播放
摘要:要探讨的最简单的情况是仅仅播放在线的,可通过HTTP对其进行访问的音频文件。下面就是一个这样的文件,它存在于服务器上: www.baidu.com/music下面是一个活动的示例,其使用MediaPlayer来演示如何播放通过HTTP获得的音频。 1 package com.nthm.android... 阅读全文

posted @ 2014-08-29 08:57 宁静致远,一览众山小 阅读(639) 评论(0) 推荐(0) 编辑

6.2 网络音频
摘要:现在继续向前推进,看看如何进一步利用Android的音频播放功能,以使用位于其他地方的媒体,特别是在网上存在的音频。随着发布MP3文件、播客以及流式音频变得越来越受欢迎,有必要构建可以利用这些服务的音频播放应用程序。幸运的是,Android拥有丰富的功能可用于处理网络上存在的各种类型的音频。接下来开... 阅读全文

posted @ 2014-08-29 08:55 宁静致远,一览众山小 阅读(173) 评论(0) 推荐(0) 编辑

6.1.3 控制服务中的MediaPlayer
摘要:然而,当使用一个服务时,从而向用户的活动向MediaPlayer发出命令变得更为复杂。为了能够控制MediaPlayer,需要把该活动与服务绑定在一起。一旦这样做,由于活动和服务在相同的进程中运行,因此可以直接调用该服务中的方法。如果正在创建一个远程服务,那么必须采起更深入一步的步骤。我们在上述活动... 阅读全文

posted @ 2014-08-28 17:04 宁静致远,一览众山小 阅读(300) 评论(0) 推荐(0) 编辑

android开源项目和框架
摘要:http://www.cnblogs.com/ljxxz/p/3941215.html 阅读全文

posted @ 2014-08-28 17:02 宁静致远,一览众山小 阅读(127) 评论(0) 推荐(0) 编辑

6.1.2 加上MediaPlayer的本地服务
摘要:既然已经创建了一个服务示例,现在可以将它作为模板来创建应用程序,以实现在后台播放音频文件。下面是一个服务以及一个控制服务的活动,这就使我们能够在后台播放音频文件。它的工作方式与第5章中自定义的音频播放器示例类似,因为它使用Android提供的相同的底层MediaPlayer类。1 package c... 阅读全文

posted @ 2014-08-28 15:36 宁静致远,一览众山小 阅读(404) 评论(0) 推荐(0) 编辑

6.1.1 服务
摘要:当应用程序不再位于前台且没有正在使用它的活动时,为了确保音频继续播放,我们需要创建一个服务。服务是Android应用程序的一个组件,其用于后台运行任务,而无需与任何用户交互。 1.本地服务与远程服务 Android中存在几个可用的不同服务类。第一个将要探讨的服务称为本地服务(Local Servic... 阅读全文

posted @ 2014-08-28 15:11 宁静致远,一览众山小 阅读(172) 评论(0) 推荐(0) 编辑

6.1 后台音频播放
摘要:迄今为止,本书的重点都是构建位于前台的应用程序,他们有用户界面以在用户面前展示自己。在第5章中,我们还了解了如何为这些类型的应用程序添加音频播放功能。然而,如果想要构架一个播放音乐或音频书籍的应用程序,但是希望用户能够在继续通电话的同时用电话做其他的事情,那么应该怎么办呢?如果仅仅局限于构建活动,那... 阅读全文

posted @ 2014-08-28 13:54 宁静致远,一览众山小 阅读(432) 评论(0) 推荐(0) 编辑

第6章 后台和网络音频
摘要:第5章探讨了Android的基本音频播放功能。虽然这些功能非常的出色,但是我们需要更深入的了解他们,使它们得到广泛的运用。本章将查看如何实现诸如在后台播放音频文件以使播放音频的应用程序无需运行之类的操作。同时将了解如何合成声音而不仅仅是播放声音文件,而且将学习如何利用Internet上发布的流式音频... 阅读全文

posted @ 2014-08-28 13:38 宁静致远,一览众山小 阅读(183) 评论(0) 推荐(0) 编辑

5.2 本章小结
摘要:我们在本章中可以了解到,Android为使用音频文件提供了一组丰富的功能。可以采取类似实现图像捕获功能的方法来实现它所提供的音频功能;具体来说,可以通过一个意图来使用内置应用程序或者创建自己的自定义播放应用程序。同时,除了查询单个音频文件之外,MediaStore还具有针对音频的特殊功能——通过它可... 阅读全文

posted @ 2014-08-28 11:36 宁静致远,一览众山小 阅读(110) 评论(0) 推荐(0) 编辑

5.1.4 用于音频的MediaStore
摘要:本书前面讨论了如何将MediaStore用于图像。我们所学过的大多数只是都可用来存储和检索其他类型的媒体,包括音频。为了提供可靠的机制用于浏览和搜索音频,Android包括一个MediaStore.Audio程序包,其中定义了标准的内容提供器。 1.通过MediaStore访问音频使用MediaSt... 阅读全文

posted @ 2014-08-27 16:59 宁静致远,一览众山小 阅读(924) 评论(0) 推荐(0) 编辑

5.1.3 创建自定义的音频播放应用程序
摘要:当然,不仅限定于使用Android内置的应用程序,还可以自己编写提供播放及更多功能的应用程序。为此,Android包括了一个MediaPlayer类。这个类可以用于播放以及控制音频和视频。目前,我们仅仅使用其音频播放示例。最简单的MediaPlayer示例是播放与应用程序本身一起打包的音频文件。为此... 阅读全文

posted @ 2014-08-27 14:36 宁静致远,一览众山小 阅读(368) 评论(0) 推荐(0) 编辑

5.1.2 通过意图使用内置的音频播放器
摘要:如同使用摄像头一样,在应用程序中提供播放音频文件功能的最简单的方式是利用内置的“Music(音乐)”应用程序的功能。这个应用程序能够播放Android支持的所有格式,有一个用户熟悉的界面,并且可以通过意图来触发播放特定的文件。将通用android.content.Intent.ACTION_VIEW... 阅读全文

posted @ 2014-08-27 10:49 宁静致远,一览众山小 阅读(587) 评论(0) 推荐(0) 编辑

5.1.1 支持的音频格式
摘要:Android支持多种用于播放的音频文件格式和编解码器(它也支持几种录音格式,将在介绍录音时讨论)。 AAC:高级音频编码(Advanced Audio Coding)编解码器(以及HEAAC(高效AAC)的两个配置文件),对应的是.m4a(audio/m4a)或.3gp(audio/3gpp)文... 阅读全文

posted @ 2014-08-27 10:22 宁静致远,一览众山小 阅读(1424) 评论(0) 推荐(0) 编辑

5.1 音频播放
摘要:如前所述,Android支持与MP3播放器相等的音频播放功能。事实上,它的功能可能更加优秀,因为它支持相当广泛的音频格式,超过了大多数的硬件播放器。这是智能手机的优势之一:因为他们能够很好的运行各种软件,所以可以执行模拟专用硬件的功能;与计算机一样,他们可以为不同的、不断变化的技术提供广泛的支持,而... 阅读全文

posted @ 2014-08-27 09:23 宁静致远,一览众山小 阅读(396) 评论(0) 推荐(0) 编辑

第5章 Android音频概述
摘要:如今,任何名副其实的智能手机都具有与专用便携式媒体设备或MP3播放器相等的音频播放功能。当然,基于Android的设备也不例外。这些功能允许建立音乐播放器、音频书籍、播客或任何围绕音频播放的其他类型的应用程序。本章将探讨Android在格式和编解码器支持方面的功能,同时还将构建几个不同的播放应用程... 阅读全文

posted @ 2014-08-27 08:57 宁静致远,一览众山小 阅读(184) 评论(0) 推荐(0) 编辑

4.3 本章小结
摘要:通过本章的探讨我们了解到,可以对Android上基于画布的绘图进行许多的处理。现在我们已经结束了本书的第一部分,即处理静态图像。本书到目前为止讨论的大多数内容仅仅涉及了所有功能的表层部分,但是他提供了良好的起点,使得我们自己的应用程序可以利用摄像头,执行图像处理,或者具备绘图功能。接下来将开始探索音... 阅读全文

posted @ 2014-08-27 08:35 宁静致远,一览众山小 阅读(146) 评论(0) 推荐(0) 编辑

4.2.3 保存基于位图的画布绘图
摘要:如果仅仅是在图像上绘制,而不能再用户创建一幅杰作之后对其进行保存,那么这将毫无意义,迄今为止,我们已经绘制了图像——接下来看看如何对这些奇妙的绘图进行持久保存。至少看看如何将他们保存到SD卡中。 毫无疑问,这与在第2章的自定义摄像头应用程序中保存捕获图像的过程类似。让我们了解一下为保存图像而对... 阅读全文

posted @ 2014-08-26 17:30 宁静致远,一览众山小 阅读(342) 评论(0) 推荐(0) 编辑

4.2.2 在现有图像上绘制
摘要:由于是在Canvas对象上绘制,因此可以使用第三章中描述的技术,在Canvas对象上绘制 一幅图像,然后在该图像上进行绘制。 下列介绍一个完整的示例。 1 package com.nthm.androidtest; 2 3 import android.app.Activity; 4 imp... 阅读全文

posted @ 2014-08-26 16:17 宁静致远,一览众山小 阅读(367) 评论(0) 推荐(0) 编辑

4.2.1 触摸事件
摘要:为了开始实现这个应用程序,需要了解当用户触及触摸屏时Android将如何通知我们。能够处理这种情况之后,就可以允许用户使用他或她的手指在触摸屏上进行绘图。 在Android上使用的许多UI元素都继承自View类。由于正在使用一个来自位图对象的Canvas对象,且该位图对象在ImageView中显示... 阅读全文

posted @ 2014-08-26 15:09 宁静致远,一览众山小 阅读(395) 评论(0) 推荐(0) 编辑

4.2 手指绘图
摘要:虽然在位图画布上创建一幅静态的图画很有效,但是让我们更进一步,继续探索如何使用应用程序允许用户绘图。 阅读全文

posted @ 2014-08-26 14:15 宁静致远,一览众山小 阅读(158) 评论(0) 推荐(0) 编辑

4.1.6 绘制文本
摘要:当然,我们不仅局限于绘制直线、形状以及点。通过使用drawText方法,同样可以在Canvas对象上绘制文本;只需要绘制的文本作为一个字符串传入,同时传入起始的x和y坐标以及一个Paint对象。Paint类有一个称为setTextSize的方法,用来设置可以使用的文本大小。1 P... 阅读全文

posted @ 2014-08-26 14:02 宁静致远,一览众山小 阅读(546) 评论(0) 推荐(0) 编辑

4.1.5 绘制形状
摘要:Canvas类定义了多种绘制方法,接下来让我们了解一下这些方法。 1.点 这些方法中最简单的是只绘制一个点。为了绘制一个点,可以使用Canvas对象上的drawPoint方法,同时传入x和y位置以及一个Paint对象。1 canvas.drawPoint(199, 201, paint);... 阅读全文

posted @ 2014-08-26 10:40 宁静致远,一览众山小 阅读(375) 评论(0) 推荐(0) 编辑

4.1.4 使用Paint对象
摘要:在能够进行任何绘制之前,需要构造一个Paint对象。Paint对象将使我们能够定义绘图时使用的颜色、画笔大小和画笔样式。因此,可以将Paint对象看作是颜料和画笔。1 Paint paint=new Paint();2 paint.setColor(Color.G... 阅读全文

posted @ 2014-08-26 09:21 宁静致远,一览众山小 阅读(488) 评论(1) 推荐(0) 编辑

4.1.3 创建Canvas对象
摘要:现在已经创建了一幅位图对象,可以在其上进行绘制,接下来需要创建Canvas对象以用于实际的绘制。 为此,只需通过传入新的位图对象来构建一个Canvas对象。1 Bitmap bitmap=Bitmap.createBitmap((int)getWindowManager().getDefaultD... 阅读全文

posted @ 2014-08-26 08:55 宁静致远,一览众山小 阅读(242) 评论(0) 推荐(0) 编辑

4.1.2 位图配置
摘要:ARGB配置常量表明将以每个颜色8位内存的方式创建位图,8位用于“A”或Alpha通道,8位用于“R”或红色通道,8位用于“G”或者绿色通道,以及8位用于“B”或蓝色通道。这意味着对于图像中的每个像素,将为它的每个颜色(包括Alpha通道)分配一个0~255之间的值。因此将以32位表示每个像素,... 阅读全文

posted @ 2014-08-26 08:51 宁静致远,一览众山小 阅读(245) 评论(0) 推荐(0) 编辑

4.1.1 位图创建
摘要:与之前使用的方法一样,可以从一个可变的位图对象构造Canvas对象。为了创建一个可变的位图对象,即可以修改的位图对象,必须提供宽度、高度和配置。配置通常是在Bitmap.Config类中定义的一个常量值。一下代码创建了一个可变的位图对象,指定显示为宽度和高度的尺寸,并且将Bitmap.Config.... 阅读全文

posted @ 2014-08-25 17:32 宁静致远,一览众山小 阅读(187) 评论(0) 推荐(0) 编辑

4.1 画布绘图
摘要:在第三章中我们已经了解到,可以在Canvas对象上绘制位图对象。然而,这并不是Android中Canvas类的所有用途。它还支持向量和文本绘制。我们既可以通过位图对象使用Canvas对象(如同在第3章所做的一样),也可以通过View对象使用它。首先,我们将使用Canvas对象来创建或修改一个位图对象... 阅读全文

posted @ 2014-08-25 17:26 宁静致远,一览众山小 阅读(194) 评论(0) 推荐(0) 编辑

第4章 图形和触摸事件
摘要:迄今为止,我们已经探讨了如何捕获和处理摄影图像。当然,这并不是Android在图像方面提供的所有内容。本章将做一些改变,看看如何通过在画布上绘制图形元素和文本元素来创建图像。与此有关的是,我们还将探索Android提供的处理触摸屏的功能,特别是将构建一个触摸屏绘图应用程序。 阅读全文

posted @ 2014-08-25 16:36 宁静致远,一览众山小 阅读(137) 评论(0) 推荐(0) 编辑

3.6 本章小结
摘要:我们通过本章了解到,虽然android基本上是一种针对大小、内存和处理器能力都受限的设备的操作系统,但是他依然支持相当复杂的图像处理能力。本章介绍了许多处理已有图像的功能,但是关于图像功能的探索尚未结束。第4章将介绍一些有关API的内容,这样我们就能够从头创建图像,同时利用其它传感器(如触摸屏)做进... 阅读全文

posted @ 2014-08-25 16:32 宁静致远,一览众山小 阅读(161) 评论(0) 推荐(0) 编辑

3.5 图像合成
摘要:合成是将两幅图像放在一起的动作,它使得我们能够同时看到两幅图像的特征。在Android SDK中,可以通过首先在Canvas对象绘制一个位图对象,然后在相同的Canvas对象上绘制第二个位图对象的方式来实现合成。唯一的区别是在绘制第二个图像时,需要在Paint对象上指定一个过渡模式(Xfermode... 阅读全文

posted @ 2014-08-25 16:29 宁静致远,一览众山小 阅读(343) 评论(0) 推荐(0) 编辑

3.4.3 改变饱和度
摘要:幸运的是,无需知道每个想要完成的操作所对应的公式。例如,ColorMarix类有内置的方法可用于改变饱和度。1 ColorMatrix cm=new ColorMatrix();2 cm.setSaturation(0.5f);3 ... 阅读全文

posted @ 2014-08-25 10:38 宁静致远,一览众山小 阅读(132) 评论(0) 推荐(0) 编辑

3.4.2 改变对比度和亮度
摘要:可以通过增加或减少颜色值来调整图像的亮度和对比度。 以下代码将对每个颜色通道的强度加倍,其将影响到图像的亮度和对比度1 ColorMatrix cm=new ColorMatrix();2 float contrast=2;3 ... 阅读全文

posted @ 2014-08-25 10:34 宁静致远,一览众山小 阅读(556) 评论(0) 推荐(0) 编辑

3.4.1 ColorMatrix
摘要:类似于在Canvas对象上绘制Matrix对象的方法,也可以使用一个ColorMatrix对象来改变用于在Canvas对象上绘制的Paint对象。同样,ColorMatrix以类似的方式工作。它是一个数字数组,可以对图像的像素进行操作。然而不同于操作x、y和z坐标,它操作颜色值——每个像素的Red(... 阅读全文

posted @ 2014-08-25 10:24 宁静致远,一览众山小 阅读(398) 评论(0) 推荐(0) 编辑

3.4 图像处理
摘要:另一种图像编辑或处理的形式是必须处理像素自身颜色值的变化。这将使得我们能够改变对比度,亮度,整体色调等。 阅读全文

posted @ 2014-08-25 09:29 宁静致远,一览众山小 阅读(183) 评论(0) 推荐(0) 编辑

3.3.2 Matrix类的方法
摘要:然而,现在要做的是探索Matrix类的其他的方法,因为他们帮助我们完成了大部分想要完成的工作,而无需重新学习高中和大学的数学课程。与自己创建的Matrix对象中的数字不同,针对想要使用的转换,可以简单的调用相应的方法。下述的每个代码片段都可以替换“在位图上绘制位图”示例中的canvas.drawBi... 阅读全文

posted @ 2014-08-23 11:23 宁静致远,一览众山小 阅读(711) 评论(0) 推荐(0) 编辑

3.3.1 输入矩阵
摘要:Android API有一个Matrix(矩阵)类,当在现有位图对象上进行绘制或从另一个位图对象创建某个位图对象时,可以使用该类。这个类使得我们能够在一幅图像上应用空间转换。这种类型的转换可以是旋转,裁剪,缩放或者更改图像的坐标空间。 Matrix类是以9个数字的数组表示转换。在许多情况下,这些数... 阅读全文

posted @ 2014-08-23 11:11 宁静致远,一览众山小 阅读(342) 评论(0) 推荐(0) 编辑

3.3 基本的图像缩放和旋转
摘要:现在讲开始探索图像编辑和处理,学习如何执行空间转换操作,例如改变比例和旋转图像。 阅读全文

posted @ 2014-08-23 10:32 宁静致远,一览众山小 阅读(191) 评论(0) 推荐(0) 编辑

3.2 在位图上绘制位图
摘要:在深入探讨用来更改图像的具体机制之前,让我们看看如何创建一个新的空位图对象,并在其上绘制已有的位图。这是将用来创建图像的更改版本的过程。上述示例获得了一个位图对象,使用用户选择的一幅图像对其进行实例化。正如子啊第一章中所介绍的那样,通过BitmapFactory的decodeStream方法进行实例... 阅读全文

posted @ 2014-08-23 09:05 宁静致远,一览众山小 阅读(367) 评论(0) 推荐(0) 编辑

3.1 使用内置Gallery应用程序选择图像
摘要:为了使用一个预装Android应用程序中存在的功能,利用意图通常是最快捷的方式。出于介绍本章中示例的目的,让我们看看如何利用内置的Gallery(图像库)应用程序选择希望使用的图像。我们将要使用的意图是一个通用的Intent.ACTION_PICK,它通知Android:我们想要选择一块数据。同时,... 阅读全文

posted @ 2014-08-22 17:30 宁静致远,一览众山小 阅读(411) 评论(0) 推荐(0) 编辑

第3章 图像编辑和处理
摘要:随着手持设备变得越来越强大,许多曾经只在桌面上存在的功能如今移动设备上也成为可能。虽然图像编辑和处理曾经是诸如PhotoShop之类的桌面应用程序的功能范畴,但是现在也可以在手机上实现这个功能。本章将介绍如何处理捕获后的图像:了解如何通过旋转和缩放来改变他们,如何调整亮度和对比度,以及如何合成两幅或... 阅读全文

posted @ 2014-08-22 16:44 宁静致远,一览众山小 阅读(331) 评论(0) 推荐(0) 编辑

2.3 本章小结
摘要:可能有无数的理由需要建立自己的Camera应用程序,而不仅仅是在自己的应用中利用内置的应用程序。我们可以随心所欲的实现各种Camera应用程序,从简单的倒计时拍照应用程序到自己的时间推移系统,以及更多的应用程序。接下来将介绍如何处理已经捕获的图像。 阅读全文

posted @ 2014-08-22 16:29 宁静致远,一览众山小 阅读(109) 评论(0) 推荐(0) 编辑

2.2.2 构建时间推移摄影应用程序
摘要:我们都已经看过时间推移摄影的完美范例。他是在一段时间内拍摄多张照片的过程。它可能是每分钟,每小时甚至每周拍摄一张照片。通过查看一系列时间推移的照片,可以了解事物如何随时间而变化。一个可能的示例是观察一幢建筑物如何建造,另一个可能的示例是记录一朵花如何成长和盛开的。由于已经构建了一个基于定时器的Cam... 阅读全文

posted @ 2014-08-22 16:25 宁静致远,一览众山小 阅读(241) 评论(0) 推荐(0) 编辑

2.2.1 构建基于定时器的Camera应用程序
摘要:为了纠正刚才所描述的情况,可以再照相时添加一个时间延迟。接下来更新SnapShot示例,使得在按下按钮10秒钟后开始照相。为了实现这个功能,需要使用一个类似java.util.Timer的对象。但是,在Android中使用Timer对象会导致一些问题,因为它引入了一个单独的线程。为了使用单独的线程与... 阅读全文

posted @ 2014-08-22 15:05 宁静致远,一览众山小 阅读(224) 评论(0) 推荐(0) 编辑

2.2 扩展定制的Camera应用程序
摘要:Android上内置的Camera应用程序缺少几个基本功能,其中之一是在少量时间(例如10秒或30秒)之后照相的能力。此功能通常对于安装了三脚架的摄像头非常有用。它能完成的一件事就是摄影师能够建立一个场景,设置计时器,然后跑进该场景。虽然不会经常这样使用移动电话,但是它在某些情况下将会非常的有用。... 阅读全文

posted @ 2014-08-22 13:58 宁静致远,一览众山小 阅读(181) 评论(0) 推荐(0) 编辑

2.1.4 汇总
摘要:让我们来看一下完整的示例。下面编写的代码可在Android 2.2和更高版本上运行,但是只须稍作改动,这段代码应该就能在Android 1.6和更高版本上运行。在注释中特别注明了要求高于1.6版本的部分。 1 package com.nthm.androidtest; 2 3 import jav... 阅读全文

posted @ 2014-08-22 10:58 宁静致远,一览众山小 阅读(139) 评论(0) 推荐(0) 编辑

2.1.3 实现Camera对象
摘要:既然已经建立了活动季玉兰Surface,现在我们准备好开始使用实际的Camera对象。当创建Surface时,由于SurfaceHolder.Callback的存在,他将在代码中触发surfaceCreated方法。此时可以通过调用Camera类上的静态方法open获得Camera对象。 1 ... 阅读全文

posted @ 2014-08-21 17:30 宁静致远,一览众山小 阅读(462) 评论(0) 推荐(0) 编辑

2.1.2 预览Surface
摘要:同样,在开始使用摄像头之前,还需要创建某种类型的Surface(表面),使得Camera应用程序能够在其绘制取景器(viewfinder)或预览图像。Surface是Android中的一个抽象类,表示绘制图形或图像的位置。提供一个绘图Surface的最简单的方法就是使用SurfaceView类。Su... 阅读全文

posted @ 2014-08-21 11:42 宁静致远,一览众山小 阅读(444) 评论(0) 推荐(0) 编辑

2.1.1 Camera权限
摘要:为了使用Camera类捕获图像,需要在AndroidManifest.xml文件中指定必须的CAMERA权限1 阅读全文

posted @ 2014-08-21 10:50 宁静致远,一览众山小 阅读(314) 评论(0) 推荐(0) 编辑

2.1 使用Camera类
摘要:可以使用Android中的Camera类访问该设备上的摄像头硬件。它使我们能够真正捕获图像,并通过其嵌套的Camera.Parameters类更改不同的属性设置,例如是否应该将闪光灯激活以及如何设置白平衡的值。 阅读全文

posted @ 2014-08-21 10:47 宁静致远,一览众山小 阅读(119) 评论(0) 推荐(0) 编辑

第2章 构建定制的Camera应用程序
摘要:在第一章中,我们了解了如何利用Android内置的Camera程序,为任何其他的应用程序提供一个现成的照片捕获组件。虽然这位用户提供了一个标准的接口,并且对程序员而言非常简单,但是他没有提供太多的灵活性。例如,如果希望照片捕获应用程序支持时间推移摄影,那么不能简单的使用内置应用程序来实现该功能。幸运... 阅读全文

posted @ 2014-08-21 10:42 宁静致远,一览众山小 阅读(154) 评论(0) 推荐(0) 编辑

1.3 本章小结
摘要:本章介绍了Android上图像捕获和存储的相关的基础知识。我们看到了使用Android上内置的Camera应用程序的强大功能,以及通过一个意图如何有效地利用其功能。我们也了解到Camera应用程序提供了一个良好的和一致的接口,能够为Android应用程序添加图像捕获功能。我们也注意到在处理大图像时需... 阅读全文

posted @ 2014-08-21 10:10 宁静致远,一览众山小 阅读(105) 评论(0) 推荐(0) 编辑

1.2.5 内部元数据
摘要:EXIF表示可交换的图像格式(Exchangeable Image File Format),他是在图像文件保存元数据的一种标准方式。许多数字摄像头和桌面应用程序都支持使用EXIF数据。由于EXIF数据实际上市文件的一部分,因此当文件从一个位置传送到另一个位置时,不应该将它丢失。例如,当将一个文件... 阅读全文

posted @ 2014-08-21 10:01 宁静致远,一览众山小 阅读(274) 评论(0) 推荐(0) 编辑

1.2.4 创建图像查看应用程序
摘要:下面是一个完整的示例,它查询MediaStore以发现图像,并以幻灯片的形式一幅接一幅的向用户展示图像。 1 package com.nthm.androidtest; 2 3 import android.support.v7.app.ActionBarActivity; 4 import an... 阅读全文

posted @ 2014-08-20 17:15 宁静致远,一览众山小 阅读(235) 评论(0) 推荐(0) 编辑

1.2.3 使用MediaStore检索图像
摘要:为了说明在Android上使用共享内容提供器的能力,一个示例是使用它们可以很容易的创建一个类似的图像库应用程序。由于内容提供器(当前为MediaStore)在应用程序之间共享,因此为了使得我们自己的应用程序可以查看图像,实际上不需要创建一个摄像头应用程序并采取方法来存储图像。由于大多数应用程序将使用... 阅读全文

posted @ 2014-08-20 17:11 宁静致远,一览众山小 阅读(545) 评论(0) 推荐(0) 编辑

1.2.2 更新CameraActivity以使用MediaStore存储图像和关联元数据
摘要:以下的代码是上述示例的更新,它将在MediaStore中保存图像,然后允许添加标题和描述。此外该版本包含几个UI元素,我们将基于用户在该应用程序的操作进程对这些元素的可见性进行管理。 1 package com.bluemobi.nthm.showversion; 2 3 import java... 阅读全文

posted @ 2014-08-20 16:10 宁静致远,一览众山小 阅读(325) 评论(0) 推荐(0) 编辑

1.2.1 获得图像的Uri
摘要:为了获得存储图像的标准位置,首先需要获取MediaStore的引用。为此,使用一个内容解析器。内容解析器是用于访问内容提供器(例如MediaStore)的方法。通过传递一个特定的Uri,内容解析器将提供一个MediaStore接口作为内容提供器。由于是插入一幅新图像,因此我们使用的方法时insert... 阅读全文

posted @ 2014-08-20 14:17 宁静致远,一览众山小 阅读(510) 评论(0) 推荐(0) 编辑

1.2 图像的存储和元数据
摘要:Android拥有一种在应用程序之间共享数据的标准方法。负责这个功能的类称为内容提供器。内容提供器为不同类型数据的存储和检索提供了一个标准的接口。图像(以及音频和视频)的标准内容提供器是MediaStore。MediaStore在设备上的一个标准位置存放文件的位置,并且为存储和检索该文件的元数据提... 阅读全文

posted @ 2014-08-20 10:13 宁静致远,一览众山小 阅读(378) 评论(0) 推荐(0) 编辑

1.1.3 显示大图像
摘要:加载并且显示一幅图像对内存使用情况具有显著的影响。例如,HTC G1电话带有一个320万像素的摄像头。320万像素的摄像头通常会捕获2048X 1536像素的图像。显示如此大小的32位图像将需要超过100663kb或大约13MB的内存。虽然我们的应用程序不一定会因此耗尽内存,但是这肯定会使得内存更... 阅读全文

posted @ 2014-08-19 17:30 宁静致远,一览众山小 阅读(394) 评论(0) 推荐(0) 编辑

1.1.2 捕获更大的图像
摘要:为了绕过大小的限制,从Android 1.5开始,在大多数设备上可以将一个附加值传递给触发Camera应用程序的意图。这个附加值的名称在MediaStore类中指定,他是一个常量,称为EXTRA_OUTPUT。这个附加值(采用名—值对的形式)将以URI的方式指示Camera应用程序你想要捕获的图像... 阅读全文

posted @ 2014-08-19 16:27 宁静致远,一览众山小 阅读(139) 评论(0) 推荐(0) 编辑

1.1.1 从Camera应用程序返回数据
摘要:当然,在捕获一张照片时,如果Camera程序没有将图片返回给调用活动,那么简单的使用内置的Camera应用程序捕获图像将不具有真正的作用。而为了使用它真正有用,可以将活动中的startActivity方法替换成startActivityForResult方法。使用该方法将允许我们访问从Camera应... 阅读全文

posted @ 2014-08-19 16:05 宁静致远,一览众山小 阅读(510) 评论(0) 推荐(0) 编辑

1.1 使用内置的Camera应用程序捕获图像
摘要:随着移动电话迅速成为移动计算机,他们在很多的方面已经取代了各种各样的消费类的电子产品。最早添加到移动电话上且与电话无关的就是硬件功能之一的是摄像头。现在,视乎很难有人想象会购买一部不包含有摄像头功能的移动电话。当然,基于Android的电话也不例外;从一开始,Android SDK就支持访问电话内置... 阅读全文

posted @ 2014-08-05 16:49 宁静致远,一览众山小 阅读(529) 评论(0) 推荐(0) 编辑

第1章 Android图像概述
摘要:本章将介绍有关的Android上图像的捕获和存储的基础知识。首先将探索Android所提供的内置功能,然后在后续的章节中更多的介绍定制软件。内置的图像捕获和存储功能为Android上的所有媒体功能提供了一个很好的切入点,为我们在以后的章节中除以音频和视频奠定了基础。考虑到这一点,我们将首先介绍如何利... 阅读全文

posted @ 2014-08-05 16:16 宁静致远,一览众山小 阅读(217) 评论(0) 推荐(0) 编辑

导航

点击右上角即可分享
微信分享提示