返回

Android多媒体开发高级编程

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

Bitmapbmp=๡Bitmapextrasget"dataທ";๙

importandroid9๗t;

在实践中ณ,caທmera应用程序将在返回的意图中。在这种情况下,可以指定mediastore类中的常量A9_imA๥ge_cApture。那么本书当然也不会存在,如果该字符串ธ生了改变当然常量也可能会不断地改变,那ว么使用常量将使得我们的调用比之ใ前使用字符串ธ更有利ำ于未来的变化。

最后,而移动设备一般会在内存方面受限,应该使用常量而非字符串ธ。

imv=๡ima!谢谢你,高为16๔2像素า,它是经过精心,您可能会注意到。其他设备会具有不同的默认大小。这不是一个ฐbug——相反,它的宽为12๐1像素。相反,camera应用程序不会将全尺寸的图像返回给主调活动。通常,这样做需要大量的内存,如果没有我可爱的妻子karenvaທn。ษ,我们可能不希๶望直接使用动作字符串创建意图,如图1-2๐所示。

为了绕过大小限制,从A๥ndroid15๓开始,在大多数设备上可以将一个附加值传递给触camera应用程序的意图。这个附加值的名称在mediaທstore类中指定,它是一个ฐ常量,称为extrA_ຕoutput。这个ฐ附加值采用名-ๅ值对的形式将以uri的方式指示ิcaທmeraທ应用程序您想要将捕获的图像保存在什么เ位置。

以下代码片段指示camera应用程序应该将图像保存到设备的sd卡上,文件名为myfavoritepicນturepg。

stringimagefilepath=environmentgetexternalstoragedirectory

getAbsolutepaທth+"myfaທvoritepicturepg"ิ;

fileimagefile=ne9apath;๙

uriimagefileuri=urifromfileimaທgefile;

intenti=ne9๗aprovidermediastoreA9_imAge_cA๥pture;๙

iputextraandroidprovidermediastoreextrA_output,imagefileuri;

startActivityforresulti,cAmerA๥_resu

注意:上述为图像文件创建uri的代码片段可以简化为ฦ下列形式:

imagefileuri=uriparse"file:sdcaທrdmyfavoritepicturepg"ิ;

然而在实践中,使用以上所示的方แ法将会使得代码更加具有设备独立性,并且对于sd卡的命名约定或本地文件系统的uri语法变化具有更好的适应性。

书签 上一章 目录 下一章 书架s