android - 相机捕获的图像应转发到android中的下一个屏幕

标签 android camera

这是我的代码

package com.marakana;

import java.io.File;
import java.io.FileNotFoundException;
import java.io.FileOutputStream;
import java.io.IOException;

import android.app.Activity;
import android.content.Intent;
import android.hardware.Camera;
import android.hardware.Camera.PictureCallback;
import android.hardware.Camera.ShutterCallback;
import android.net.Uri;
import android.os.Bundle;
import android.util.Log;
import android.view.View;
import android.view.View.OnClickListener;
import android.widget.Button;
import android.widget.FrameLayout;
import android.widget.Toast;

public class CameraActivity extends Activity {
  private static final String TAG = "CameraDemo";
  Preview preview; // <1>
  Button buttonClick; // <2>
  myglobal m=new myglobal();
  String aa;
  /** Called when the activity is first created. */
  @Override
  public void onCreate(Bundle savedInstanceState) {
    super.onCreate(savedInstanceState);
    setContentView(R.layout.main);

    preview = new Preview(this); // <3>
    ((FrameLayout) findViewById(R.id.preview)).addView(preview); // <4>

    buttonClick = (Button) findViewById(R.id.buttonClick);
    buttonClick.setOnClickListener(new OnClickListener() {
      public void onClick(View v) { // <5>
        preview.camera.takePicture(shutterCallback, rawCallback, jpegCallback);
      }
    });

    Log.d(TAG, "onCreate'd");
  }

  // Called when shutter is opened
  ShutterCallback shutterCallback = new ShutterCallback() { // <6>
    public void onShutter() {
      Log.d(TAG, "onShutter'd");
    }
  };

  // Handles data for raw picture
  PictureCallback rawCallback = new PictureCallback() { // <7>
    public void onPictureTaken(byte[] data, Camera camera) {
      Log.d(TAG, "onPictureTaken - raw");
    }
  };

  // Handles data for jpeg picture
  PictureCallback jpegCallback = new PictureCallback() { // <8>
    public void onPictureTaken(byte[] data, Camera camera) {
      FileOutputStream outStream = null;
      try {
        // Write to SD Card


          outStream = new FileOutputStream(String.format("/sdcard/DCIM/%d.jpg",
            System.currentTimeMillis()));

          m.setAa(aa);
         Toast.makeText(getBaseContext(),aa,1000).show();
        outStream.write(data);
        outStream.close();
        Log.d(TAG, "onPictureTaken - wrote bytes: " + data.length);
        Intent i=new Intent();
        i.setClassName("com.marakana", "com.marakana.image");
        startActivity(i);
      } catch (FileNotFoundException e) { // <10>
        e.printStackTrace();
      } catch (IOException e) {
        e.printStackTrace();
      } finally {
      }
      Log.d(TAG, "onPictureTaken - jpeg");
    }
  };

}

最佳答案

我认为你最好在下一个 Activity 中发送你的路径。所以你可以从那个 Activity 中读到它。

String path =  String.format("/sdcard/DCIM/%d.jpg",System.currentTimeMillis());
outStream = new FileOutputStream(path);
//other codes 
Intent i=new Intent();
i.setClassName("com.marakana", "com.marakana.image");
i.putExtra("path", path);
startActivity(i);

所以你可以访问那个路径

String path = getIntent().getExtra("path");
//so you can create drawable or bitmap using this path

关于android - 相机捕获的图像应转发到android中的下一个屏幕,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/4872220/

相关文章:

ios - 将图像保存在App Directory中,而不是去相册。 objective-c iOS

javascript - MeterGuage 4.2 Android 版本中的针问题?

java - 总是空指针异常

java - 使用 Volley 为 JSON 请求自定义对象绑定(bind)

android - 我可以不使用 android.hardware.Camera 来控制手电筒吗?

android - Android 上的相机预览 - 在 Samsung Galaxy S 上很奇怪

java - 如何在 Retrofit2 Android 中动态重命名 JSON 响应的键

java - 如何删除或取消alarmManager中的所有pendingIntent?

ios - 如何更改某些功能以与 iOS 10 或更低版本兼容,以便我的 snapchat 中的某些功能(如相机 View Controller )

camera - Three.js - 鱼眼效果