如何显示新活动中的图像

只是想知道是否有人可以帮助我解决这个问题,因为我是java的主要新手。 我想要做的是当我按下按钮并在之后显示新活动时拍照。 到目前为止我所做的工作是当我点击按钮时相机打开拍照将照片保存到我的画廊然后带我回到相同的活动。 任何帮助表示赞赏!

这是我的mainactivity.java文件

package com.example.appname; import android.app.Activity; import android.content.Context; import android.content.Intent; import android.os.Bundle; import android.os.Environment; import android.provider.MediaStore; import java.io.File; import java.text.SimpleDateFormat; import java.util.Date; import java.util.Locale; public class MainActivity extends Activity { private File mFileUri; private final Context mContext = this; @Override protected void onCreate(Bundle savedInstanceState) { super.onCreate(savedInstanceState); setContentView(R.layout.activity_main); Intent intent = new Intent(MediaStore.ACTION_IMAGE_CAPTURE); mFileUri = getOutputMediaFile(1); intent.putExtra(MediaStore.EXTRA_OUTPUT, mFileUri); // start the image capture Intent startActivityForResult(intent, 100); } @Override protected void onActivityResult(int requestCode, int resultCode, Intent imageReturnedIntent) { super.onActivityResult(requestCode, resultCode, imageReturnedIntent); if (resultCode == RESULT_OK) { if (mFileUri != null) { String mFilePath = mFileUri.toString(); if (mFilePath != null) { Intent intent = new Intent(mContext, CamActivity.class); intent.putExtra("filepath", mFilePath); startActivity(intent); } } } } // Return image / video private static File getOutputMediaFile(int type) { // External sdcard location File mediaStorageDir = new File(Environment.getExternalStorageDirectory(), "DCIM/Camera"); // Create the storage directory if it does not exist if (!mediaStorageDir.exists()) { if (!mediaStorageDir.mkdirs()) { return null; } } // Create a media file name String timeStamp = new SimpleDateFormat("yyyyMMdd_HHmmss", Locale.getDefault()).format(new Date()); File mediaFile; if (type == 1) { // image mediaFile = new File(mediaStorageDir.getPath() + File.separator + "IMG_" + timeStamp + ".jpg"); } else if (type == 2) { // video mediaFile = new File(mediaStorageDir.getPath() + File.separator + "VID_" + timeStamp + ".mp4"); } else { return null; } return mediaFile; } } 

这是我的activity_main.xml文件

  

这是我的CamActivity.java,它上面没有任何东西,只有一个图像视图,这是我想在相机保存照片后显示图像的地方

 package com.example.appname; import android.app.Activity; import android.content.Intent; import android.graphics.Bitmap; import android.graphics.BitmapFactory; import android.os.Bundle; import android.widget.ImageView; import java.io.File; public class CamActivity extends Activity { @Override protected void onCreate(Bundle savedInstanceState) { super.onCreate(savedInstanceState); setContentView(R.layout.activity_cam); Intent intent = getIntent(); String filepath = intent.getStringExtra("filepath"); BitmapFactory.Options options = new BitmapFactory.Options(); options.inSampleSize = 8; // down sizing image as it throws OutOfMemory Exception for larger images filepath = filepath.replace("file://", ""); // remove to avoid BitmapFactory.decodeFile return null File imgFile = new File(filepath); if (imgFile.exists()) { ImageView imageView = (ImageView) findViewById(R.id.imgphoto); Bitmap bitmap = BitmapFactory.decodeFile(imgFile.getAbsolutePath(), options); imageView.setImageBitmap(bitmap); } } } 

我的activity_cam.xml文件

    

你应该有以下几点:

  @Override protected void onActivityResult(int requestCode, int resultCode, Intent imageReturnedIntent) { super.onActivityResult(requestCode, resultCode, imageReturnedIntent); if (resultCode == RESULT_OK) { if (mFileUri != null) { String mFilePath = mFileUri.toString(); if (mFilePath != null) { Intent intent = new Intent(mContext, SecondActivity.class); intent.putExtra("filepath", mFilePath); startActivity(intent); } } } } 

请在下面的问题中使用示例代码阅读我的答案(我使用Android Studio,而不是Eclipse,但我认为您很容易理解):

如何将手机摄像头拍摄的图像从一个活动移动到另一个活动的图像视图?

希望这可以帮助!