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

加入书签 本章报错

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

importandroidosBundle;๙

importandroidosB๦undle;

为了引用imagevie9aທp对象,使用以下代码。-米-花-ๅ在-线-书-ๅ库-ๅbຘoouanet

imv=imagevie9findvie9Byidridreturnedimagevie9;

imvsetimaທgeBitmaທpbຘmp;๙

当运行这个示例时,您可能会注意到เ结果图像很小在我的手机上,它的宽为ฦ1้21像素,高为16๔2像素า。其他设备会具有不同的默认大小。这不是一个bug——相反,它是经过精心设计的。当通过一个意图触时,caທmera应用程序不会将全尺寸的图像返回给主ว调活动。通常,这样做需要大量的内存,而移动设备一般会在内存方面受限。相反,caທmera应用程序将在返回的意图中ณ返回一幅很小的缩略图,如图1้-2所示。

为了绕过大小限制ๆ,从A๥ndroid15开始,在大多数设备上可以将一个附加值传递给触cameraທ应用程序的意图。这个附加值的名称在mediastore类中指定,它是一个常量,称为extrA_output。这个附加值采用名-值对的形式将以uri的方แ式指示ิcameraທ应用程序您想要将捕获的图像保存在什么เ位置。

以下代码片段指示camera应用程序应该将图像保存到设备的sd卡上,文件名为myfavoritepicturepg。

stringimagefilepath=environmentgetexternalstoragedirectory

getA๥bຘsolutepath+"myfavoritepicturepg"ิ;

fileimaທgefile=ne9๗aທpath;

uriimagefileuri=urifromfileimaທgefile;๙

intenti=ne9๗aprovidermediastoreA๥9_imAge_cA๥pture;

iputextraandroidprovidermediastoreextrA_ຕoutput,imagefileuri;

startActivityforresulti,cAmerA๥_resu

注意:上述为图像文件创建uri的代码片段可以简化为下列形式:

imagefileuri=๡uriparse"file:๘sdcardmyfaທvoritepicturepg"ิ;

然而在实践中ณ,使用以上所示的方แ法将会使得代码更加具有设备独立性,并且对于sd卡的命名约定或本地文件系统的uri语法变化具有更好的适应性。

↑返回顶部↑

书页/目录

Android多媒体开发高级编程