拍照摄像头,从片段中 [英] Take photo from camera in fragment
问题描述
在我的片段
我试图拍照从我的相机,但的onActivityResult
我的片段
不叫。拍照这个之后片段
未显示,并切换到我的第一个片段
。在那里捕捉照片的任何其他方式片段
,或者我究竟做错了什么?
下面是我目前的code:
公共无效takePhoto(){
意向意图=新意图(android.media.action.IMAGE_CAPTURE);
文件照片=新的文件(Environment.getExternalStorageDirectory(),Pic.jpg);
intent.putExtra(MediaStore.EXTRA_OUTPUT,
Uri.fromFile(照片));
imageUri = Uri.fromFile(照片);
PhotosListFragment.this.startActivityForResult(意向,100);
} @覆盖
公共无效的onActivityResult(INT申请code,INT结果code,意图数据){
super.onActivityResult(要求code,结果code,数据);
开关(要求code){
案例100:
如果(结果code == Activity.RESULT_OK){
乌里selectedImage = imageUri;
。getActivity()getContentResolver()有NotifyChange(selectedImage,NULL);
ContentResolver的CR = getActivity()getContentResolver()。
位图位图;
尝试{
位= android.provider.MediaStore.Images.Media
.getBitmap(CR,selectedImage); viewHolder.imageView.setImageBitmap(位图);
Toast.makeText(getActivity(),selectedImage.toString(),
Toast.LENGTH_LONG).show();
}赶上(例外五){
Toast.makeText(getActivity(),无法加载,Toast.LENGTH_SHORT)
。显示();
Log.e(照相机,e.toString());
}
}
}
}
我想你的code其做工精细的花花公子。我换
PhotosListFragment.this.startActivityForResult(意向,100);
到
getActivity()startActivityForResult(意向,100)。
这后拍照,返回回同样的活动。
我想无论你的片段都在同一活动。
如果是这样的情况,我建议你创建一个新的活动,并把新的片段在那里。
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?
Here is my current code:
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);
to
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屋!