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

加入书签 本章报错

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

Bitmaທpbmp=๡Bitmapextrasget"dataທ"ิ;๙

Bitmapbmp=B๦itmapextrasget"ิdata"ิ;

在实践中ณ,我们可能不希望直接使用动作字符串创น建意图。在这种情况下,可以指定mediaທstore类中的常量A9_imAge_cນA๥pture。应该使用常量而非字符串本身的原因在于,如果该字符串生了改变当然常量也๣可能会不断地改变,那么เ使用常量将使得我们的调用比之前使用字符串ธ更有利于未来的变化。

在实践中,我们可能不希๶望直接使用动作字符串ธ创建意图。在这种情况下,可以指定mediastore类中的常量A9_imA๥ge_cApture。应该使用常量而非字符串本身的原因在于,如果该字符串生了改变当然常量也可能会不断地改变,那么使用常量将使得我们的调用比之前使用字符串更有利ำ于未来的变化。

bmpfa9samplesize=8;

Bitmapbmp=Bitmapfacນtorydecodefileimagefilepath,bmpfa9s;

imvsetimageB๦itmapbmp;

这是一种快加载大图像的方法,但是没有真正考虑图像的原始大小,也没有考虑屏幕的大小。最好能够将图像缩放到刚好适合屏幕。

下面的代码片段演示了如何使用显示维度来确定在加载图像时应该生的减采样量。当使用这些方法时,应确保该图像尽可能ม多地填充显示ิ范围。但如果该图像只是要在任何一个维度中ณ显示ิ1้00个像素,那么应该使用这个值而不是显示维度,可以通过如下方式获得该值。

display9๗do9manaທgergetdefaultdisplaທy;

int9=9tdisplayget9idth;

intdh=๡9๗tdisplaygetheight;๙

为ฦ了确定图像的所有尺寸用于计算,我们使用了Bitmapfaທcນtory和Bitmapfaທ9s,并将B๦itmapfa9ustde9๗ds变量设置为ฦtrue。这将通知B๦itmapfacນtory类只须返回该图像的范围,而无຀须尝试解码图像本身。当使用此方法时,Bitmapfa9๗southeight和Bitmapfa9๗sout9๗idth变量将会被赋值。

加载图像的尺寸而不是图像本身

Bitmaທpfaທ9sbmpfa9๗s;๙

bmpfa9ustde9ds=๡true;๙

B๦itmapbmp=๡Bitmapfaທctorydecodefileimagefilepath,bຘmpfa9๗s;

intheightraທtio=intmath9๗southeightfloatdh;๙

int9idthraທtio=intmath9sout9idthfloat9;๙

logv"heightrA๥tio",ไ"ิ"ิ+heightratio;๙

logv"ิ9๗idthrAtio","ิ"+9idthratio;

↑返回顶部↑

书页/目录

Android多媒体开发高级编程