托管此片段的活动onActivityResult在相机活动返回时调用.
我的片段开始一个结果的活动,其意图是发送给相机拍照.图片应用程序加载正常,拍照并返回.该onActivityResult然而,永远不会打.我设置了断点,但没有触发任何东西.一个片段可以onActivityResult吗?我想是因为它是一个提供的功能.为什么不被触发?
ImageView myImage = (ImageView)inflatedView.findViewById(R.id.image);
myImage.setOnClickListener(new OnClickListener() {
@Override
public void onClick(View view) {
Intent cameraIntent = new Intent(android.provider.MediaStore.ACTION_IMAGE_CAPTURE);
startActivityForResult(cameraIntent, 1888);
}
});
@Override
public void onActivityResult(int requestCode, int resultCode, Intent data) {
if( requestCode == 1888 ) {
Bitmap photo = (Bitmap) data.getExtras().get("data");
((ImageView)inflatedView.findViewById(R.id.image)).setImageBitmap(photo);
}
}
Run Code Online (Sandbox Code Playgroud) 我正在构建一个使用相机拍照的应用程序.这是我的源代码:
File file = new File(Environment.getExternalStorageDirectory(),
imageFileName);
imageFilePath = file.getPath();
Intent intent = new Intent("android.media.action.IMAGE_CAPTURE");
//Intent intent = new Intent(MediaStore.ACTION_IMAGE_CAPTURE);
intent.putExtra(MediaStore.EXTRA_OUTPUT, Uri.fromFile(file));
startActivityForResult(intent, ACTIVITY_NATIVE_CAMERA_AQUIRE);
Run Code Online (Sandbox Code Playgroud)
在onActivityResult()方法上,我BitmapFactory.decodeStream()用来拾取图像.
当我在Nexus上运行我的应用程序时,它运行良好.但是当我在三星Galaxy S或HTC Inspire 4G上运行时,图像的方向是不正确的.

拍摄后的图像预览--------- SD卡上的真实图像
拍摄后的图像预览--------- SD卡上的真实图像
我已经浏览了一些链接,以获得从默认图库中选择的图像的正确图像方向,以便在exif标记始终返回0的所有设备中标准化.
对于使用肖像相机应用程序android拍摄的图像,EXIF方向标记值始终为0
http://mobisocial.stanford.edu/news/2011/08/rotating-images-in-android/
如何获得适用于所有设备的精确解决方案?
我发布了一个应用程序,其中一个基本功能是允许用户拍照,然后将该照片保存在其外部存储的特定文件夹中.
一切似乎都运行正常,但我现在有两个报告声称在拍照后,点击"完成"退出相机(并返回活动),应用程序被强制关闭,带来用户回到主屏幕.
这发生在Samsung Nexus S和Galaxy Tab上.下面我发布了我的代码,以显示我设置我的意图以及如何在onActivityResult()中处理保存和显示照片.任何关于在点击"完成"退出相机应用程序后可能导致崩溃的指导,将不胜感激!
同样,这似乎在大多数设备上都能正常工作,但我想知道它们是否是一种更有效,更通用的方法.谢谢
我如何解雇相机意图
case ACTION_BAR_CAMERA:
// numbered image name
fileName = "image_" + String.valueOf(numImages) + ".jpg";
output = new File(direct + File.separator + fileName); // create
// output
while (output.exists()) { // while the file exists
numImages++; // increment number of images
fileName = "image_" + String.valueOf(numImages) + ".jpg";
output = new File(outputFolder, fileName);
}
camera = new Intent(android.provider.MediaStore.ACTION_IMAGE_CAPTURE);
uriSavedImage = Uri.fromFile(output); // get Uri of the output
camera.putExtra(MediaStore.EXTRA_OUTPUT, uriSavedImage); //pass in Uri to camera …Run Code Online (Sandbox Code Playgroud)