0

我有一个活动 A。从 A 开始一个活动 B。在活动 B 中,我使用设备中存在的相机捕获图像,并在该活动结束时返回活动 A。在此活动中必须显示捕获的图像。如何完成这项任务?在版本 2.3.3 上运行...已经在此处查看从相机捕获图像并在 Activity 中显示,但相同的 NullPointerException...在 LG 设备上运行。

4

1 回答 1

0

您可以使用 intent.putExtras 方法将捕获的图像的 URL 从 Activity B 传递给 Activity A。

请参阅在 android 活动之间传递字符串数组

对于捕获图像,请参阅下面的代码

public class Camera extends Activity 
{
     private static final int CAMERA_REQUEST = 1888;
     private String selectedImagePath;
     WebView webview;
     String fileName = "capturedImage.jpg";
     private static Uri mCapturedImageURI; 

    @Override
    public void onCreate(Bundle savedInstanceState)
    {
        super.onCreate(savedInstanceState);
            webview=(WebView)findViewById(R.id.webView1);
    }

    public void TakePhoto()
    {   
            ContentValues values = new ContentValues();  
            values.put(MediaStore.Images.Media.TITLE, fileName);  
            mCapturedImageURI = getContentResolver().insert(MediaStore.Images.Media.EXTERNAL_CONTENT_URI, values);
            Intent cameraIntent = new Intent(ACTION_IMAGE_CAPTURE);
            cameraIntent.putExtra(MediaStore.EXTRA_OUTPUT, mCapturedImageURI); 
            startActivityForResult(cameraIntent, CAMERA_REQUEST);
    }       
    @Override
    public void onActivityResult(int requestCode, int resultCode, Intent data)
    {
        if (resultCode == RESULT_OK)
            {
              if (requestCode == CAMERA_REQUEST) 
              { 
                selectedImagePath = getPath(mCapturedImageURI);
                 //Save the path to pass between activities
              }
            }
    }

    public String getPath(Uri uri) {
        String[] projection = { MediaStore.Images.Media.DATA };
        Cursor cursor = managedQuery(uri, projection, null, null, null);
        int column_index = cursor
                .getColumnIndexOrThrow(MediaStore.Images.Media.DATA);
        cursor.moveToFirst();
        return cursor.getString(column_index);
    }

}
于 2012-05-15T06:52:06.567 回答