Android培训:捕获照片示例

时间:2014-05-29 18:25:06

标签: android android-intent

我对Android非常陌生但是已经在google网站上完成了这些示例 - 我就是在这个:http://developer.android.com/training/camera/index.html

这是一个简单的"在android上使用相机功能的例子。有一个调用意图的按钮。意图如下所示。

private void dispatchTakePictureIntent(int actionCode) {

    Intent takePictureIntent = new Intent(MediaStore.ACTION_IMAGE_CAPTURE);

    switch(actionCode) {
    case ACTION_TAKE_PHOTO_B:
        File f = null;

        try {
            f = setUpPhotoFile();
            mCurrentPhotoPath = f.getAbsolutePath();
            takePictureIntent.putExtra(MediaStore.EXTRA_OUTPUT, Uri.fromFile(f));
        } catch (IOException e) {
            e.printStackTrace();
            f = null;
            mCurrentPhotoPath = null;
        }
        break;

    default:
        break;          
    } // switch

    startActivityForResult(takePictureIntent, actionCode);

如上所示,关键MediaStore.EXTRA_OUTPUT的意图putExtra。在android的网站上:http://developer.android.com/reference/android/provider/MediaStore.html#EXTRA_OUTPUT它表示MediaStore.EXTRA_OUTPUT的常量值为"输出"。

一旦用户点击按钮,就会调用intent,以下是代码中给出的onActivityResult方法的摘录:

@Override
protected void onActivityResult(int requestCode, int resultCode, Intent data) {
    switch (requestCode) {

    case ACTION_TAKE_PHOTO_S: {
        if (resultCode == RESULT_OK) {
            handleSmallCameraPhoto(data);
        }
        break;
    } // ACTION_TAKE_PHOTO_S

方法handleSmallCameraPhoto(data);然后被叫。这是handleSmallCameraPhoto的代码。

private void handleSmallCameraPhoto(Intent intent) {
    Bundle extras = intent.getExtras();
    mImageBitmap = (Bitmap) extras.get("data");
    mImageView.setImageBitmap(mImageBitmap);
    mVideoUri = null;
    mImageView.setVisibility(View.VISIBLE);
    mVideoView.setVisibility(View.INVISIBLE);
}

现在在上面的方法中,我们想从intent中获取fromExtras - 所以我们正在提取的方法dispatchTakePictureIntent中的putExtra是什么。

我们在这里看到这一行。

mImageBitmap = (Bitmap) extras.get("data");

不是"数据"在extras.get(" data")内部为android提取额外数据的关键?从dispatchTakePictureIntent,键是MediaStore.EXTRA_OUTPUT,其常量为"输出"不是"数据",android如何知道与"数据相关的内容"?

1 个答案:

答案 0 :(得分:0)

确定。我实际上在android网站上找到了答案。答案如下:http://developer.android.com/training/camera/photobasics.html#TaskPath标题下的#34;获取缩略图"

这是一个特例,Android使用名为" data"的密钥保存缩略图。意图。

该网站说:这是来自"数据"的缩略图。可能对图标有好处,但不是更多。