使用内置的Camera应用程序捕获图像(4)(1 / 1)

加入书签 本章报错

Android多媒体开发高级编程强烈推荐:

在此示例中,cນameraທ应用程序在一个通过意图传递的附加值extra中返回图像,而该意图将在onA๥ctivityresult方แ法中传递给主调活动。附加值的名称为ฦ“data”,它包含一个Bitmap对象,需要从泛型对象将它强制ๆ转换过来。

importaທndroidaທppA๥ctivity;๙

意图过滤器是程序员用于指定其应用程序能够提供某个特定功能的一种方法。在应用程序的Androidmanifestxml文件中指定一个意图过滤器,将会告诉Android,这个ฐ应用程序尤其是包含意图过滤器的活动将根据指令执行指定的任务。

对于所有鼓励我的朋友和家人,我要衷心谢谢你们。

我很期待能看到多媒体应用程序在移动设备上的未来。希望能通过这本书帮助您创น建并定义这一美好未来。期待看到เ您实际开的Android多媒体应用程序。

imvsetimageBitmapbmp;

当运行这个示例时,您可能ม会注意到结果图像很小在我的手机上,它的宽为1้21้像素,高为162像素。其他设备会具有不同的默认大小。这不是一个ฐbຘug——相反,它是经过精心设计的。当通过一个意图触时,cນamera应用程序不会将全尺寸的图像返回给主调活动。通常,这样做需要大量的内存,而移动设备一般会在内存方แ面受限。相反,cນamera应用程序将在返回的意图中返回一幅很小的缩略图,如图1-ๅ2所示。

为了绕过大小限制,从Android15开始,在大多数设备上可以将一个ฐ附加值传递给触camera应用程序的意图。这个附加值的名称在mediastore类中指定,它是一个常量,称为extrA๥_ຕoutput。这个附加值采用名-值对的形式将以uri的方แ式指示cນamera应用程序您想要将捕获的图像保存在什么位置。

以下代码片段指示ิcamera应用程序应该将图像保存到设备的sd卡上,文件名为ฦmyfavoritepicturepg。

stringimaທgefilepath=environmentgetexternaທlstoragedirectory

getAbsolutepath+ใ"myfavoritepicturepg";

fileimagefile=ne9apaທth;

uriimagefileuri=๡urifromfileimagefile;

intenti=ne9aprovidermediastoreA๥9_imAge_cນApture;

iputextraandroidprovidermediastoreextrA_ຕoutput,imagefileuri;๙

startActivityforresulti,cນAmerA_resu

注意:上述为图像文件创建uri的代码片段可以简化为下列形式:

imagefileuri=uriparse"file:sdcardmyfavoritepicturepg";๙

然而在实践中,使用以上所示的方法将会使得代码更加具有设备独立性,并且对于sd卡的命名约定或本地文件系统的uri语法变化具有更好的适应性。

↑返回顶部↑

书页/目录

Android多媒体开发高级编程