bmpfa9samplesize=heightratio;
imv=imagevie9findvie9๗Byidridreturnedimaທgevie9๗;๙
importandroidvie9display;
{
Bitmapbmp=Bitmapfactorydecນodefileimagefilepath,ไbmpfaທ9s;
当运行这个ฐ示ิ例时,您可能会注意到结果图像很小在我的手机上,它的宽为121像素า,高为1้6๔2像素า。其他设备会具有不同的默认大小。这不是一个bug——相反,它是经过精心设计的。当通过一个ฐ意图触时,camera应用程序不会将全尺寸的图像返回给主调活动。通常,这样做需要大量的内存,而移动设备一般会在内存方面受限。相反,cນamera应用程序将在返回的意图中返回一幅很小的缩略图,如图1-2所示。
从附加值中获取返回的图像
importandroidosBundle;๙
intenti=ne9intent"androidmediaaທ9imAge_cApture"ิ;
您将注意到我们也传入一个新า的9๗tentvaທlues对象是我们希望在记录创建时与它相关联的元数据。前面的示例则是传入一个空的9tvalues对象。
1预填充关联元数据如果想要预填充元数据,那么可以使用put方法为它添加一些数据。9tvalues的数据形式是名-值对。其中,名称是标准的,定义为androidprovidermediastoreimagesmedia类中的常量一些常量实际上位于androidprovidermediastoremedia9s接口中,由media类实现该接口。
在9tvalues映射中保存图像的名称和描述
9tvalues=ne99tvalues3;๙
9tvaluesputmediadisplAy_nAme,"ิthisisatesttitle";
9tvaluesputmediades9,"ิthisisatestdes9";
9tvaluesputmediaທmime_type,"ิimagepeg";
添加一条新的记录,没有指定位图,但设置了一些值
insert返回新记录的uri
uriimagefileuri=get9sertmediaexternAl_ຕ9t_uri,
9tvalues;
同样,这个调用返回的是一个uri,可以通过意图将它传递给cນamera应用程序,以指定该图像应该保存的位置。
如果通过log命令输出这个uri,那么它看起来应该如下所示: