我想创建自己的相机应用程序。
MainActivity有一个ImageView
点击时会有摄像头图像,它会转到CameraActivity。一旦我按下"相机" ImageView
,将拍摄照片。拍摄的照片将返回MainActivity并显示在ViewSwitcher
的图库窗口小部件上。问题是,我不知道如何将照片从CameraActivity传回MainActivity。
希望有人能给出一个提示或示例吗?
答案 0 :(得分:0)
当您从MainActivity中的MainActivity startActivityForResult()
onActivityResult()`启动CameraActivity时,您应该使用. then you can get path of taken picture in
。
从MainActivity调用相机活动
Intent intent = new Intent(MainActivity.this,CameraActivity.class);
startActivityForResult(intent, 1);
通过从CameraActivity到MainActivity的意图传递当前捕获图像的路径, 看看下面的代码片段
Intent intent = new Intent(CameraActivity.this,MainActivity.class);
intent.putExtra("Imagepath", your ImagePath);
setResult(RESULT_OK, intent);
finish();
然后在onActivityResult()
中,您将获得该图像路径,使用该路径可以访问MainActivity中的图像
protected void onActivityResult(int requestCode, int resultCode, Intent data) {
try{
if (requestCode == 1 && resultCode == RESULT_OK) {
data.getData();
imagePath= data.getStringExtra("Imagepath");
System.out.println("image Path:- " + imagePath);
}
}
答案 1 :(得分:0)
使用以下给定的方法在 MainActivity
中打开相机static final int REQUEST_IMAGE_CAPTURE = 1;
private void dispatchTakePictureIntent() {
Intent takePictureIntent = new Intent(MediaStore.ACTION_IMAGE_CAPTURE);
if (takePictureIntent.resolveActivity(getPackageManager()) != null) {
startActivityForResult(takePictureIntent, REQUEST_IMAGE_CAPTURE);
}
}
在 MainActivity 中实施onActivityResult()
以获取点击的图片:
@Override
protected void onActivityResult(int requestCode, int resultCode, Intent data) {
if (requestCode == REQUEST_IMAGE_CAPTURE && resultCode == RESULT_OK) {
Bundle extras = data.getExtras();
Bitmap imageBitmap = (Bitmap) extras.get("data");
mImageView.setImageBitmap(imageBitmap);
}
}
在您的清单文件中添加权限
<uses-feature android:name="android.hardware.camera"
android:required="true" />
答案 2 :(得分:0)