在片段中从相机拍摄照片 [英] Take photo from camera in fragment
问题描述
在我的 Fragment
中,我尝试从我的相机拍照,但是我的 Fragment
的 onActivityResult
没有被调用.拍照后,这个 Fragment
没有显示,正在切换到我的第一个 Fragment
.有没有其他方法可以在 Fragment
中捕获照片,或者我做错了什么?
In my Fragment
I try to take picture from my camera but the onActivityResult
of my Fragment
is not called. After taking photo this Fragment
is not showing and is switching to my first Fragment
. In there any other way for capturing photos in a Fragment
, or what am I doing wrong?
这是我当前的代码:
public void takePhoto() {
Intent intent = new Intent("android.media.action.IMAGE_CAPTURE");
File photo = new File(Environment.getExternalStorageDirectory(), "Pic.jpg");
intent.putExtra(MediaStore.EXTRA_OUTPUT,
Uri.fromFile(photo));
imageUri = Uri.fromFile(photo);
PhotosListFragment.this.startActivityForResult(intent, 100);
}
@Override
public void onActivityResult(int requestCode, int resultCode, Intent data) {
super.onActivityResult(requestCode, resultCode, data);
switch (requestCode) {
case 100:
if (resultCode == Activity.RESULT_OK) {
Uri selectedImage = imageUri;
getActivity().getContentResolver().notifyChange(selectedImage, null);
ContentResolver cr = getActivity().getContentResolver();
Bitmap bitmap;
try {
bitmap = android.provider.MediaStore.Images.Media
.getBitmap(cr, selectedImage);
viewHolder.imageView.setImageBitmap(bitmap);
Toast.makeText(getActivity(), selectedImage.toString(),
Toast.LENGTH_LONG).show();
} catch (Exception e) {
Toast.makeText(getActivity(), "Failed to load", Toast.LENGTH_SHORT)
.show();
Log.e("Camera", e.toString());
}
}
}
}
推荐答案
我试过你的代码,它运行良好,伙计.我改变了
I tried your code its working fine dude. I changed
PhotosListFragment.this.startActivityForResult(intent, 100);
到
getActivity().startActivityForResult(intent, 100);
拍照后,返回相同的活动.
which after taking the picture, returning back to same activity.
我认为你的两个片段都在同一个活动中.
I think both of your fragments are on same activity.
如果是这种情况,我建议您创建一个新活动并将新片段放在那里.
if that is the situation, I suggest you to create a new activity and put the new fragment in there.
这篇关于在片段中从相机拍摄照片的文章就介绍到这了,希望我们推荐的答案对大家有所帮助,也希望大家多多支持IT屋!