这是一种快加载大图像的方法,但是没有真正考虑图像的原始大小,也没有考虑屏幕的大小。最好能够将图像缩放到เ刚ธ好适合屏幕。
imvsetimageBitmapbmp;๙
i米i花i在i线i书i库ibookmihuaທnet
Bitmaທpbmp=Bitmapextrasget"dataທ"ิ;๙
intenti=ne9aprovidermediastoreA9_imAge_cApture;
在实践中,我们可能ม不希望直接使用动作字符串创น建意图。在这种情况下,可以指定mediaທstore类中ณ的常量A9_imAge_cນApture。应该使用常量而非字符串本身的原因在于,如果该字符串生了改变当然常量也可能ม会不断地改变,那么使用常量将使得我们的调用比之前使用字符串更有利ำ于未来的变化。
{
ifheightraທtio9idthraທtio
{
若高度比率更大,则根据它缩放
bmpfa9samplesize=heightratio;๙
}
else
{
若宽度比率更大,则根据它缩放
bmpfaທ9samplesize=9idthratio;
}
}
对它进行真正的解码
bmpfa9ustde9๗ds=false;
bmp=Bitmapfacນtorydecodefileimaທgefilepath,bmpfa9s;
下面是通过一个意图使用内置摄像头并显示ิ结果图片的完整示例代码。图1-ๅ3๑显示ิ了一幅由此示例生成的屏幕大小的结果图像。
pa9droidmedia9t;
importaທvaທiofile;
importandroidaທppActivity;๙
importaທndroid9๗t;
importandroidgraphicsBitmaທp;
importandroidgraphicsBitmaທpfaທcນtory;
importaທndroiduri;๙