【发布时间】:2017-04-11 20:12:25
【问题描述】:
以下代码打开相机但覆盖整个屏幕,并在捕获图像后返回片段没有点击图像的迹象。 (图像已安全保存在图库中。我只想在片段部分打开相机。我已经从here 复制了代码。我刚刚删除了“viewHolder”(try() 的第 4 行),因为我不知道它是什么正在做。并在我的代码顶部声明了 URI 变量。
我也尝试过其他答案,例如this,但由于我在 API 19 上开发,它们很复杂。
//my declared variables
private static final int CAPTURE_IMAGE_ACTIVITY_REQUEST_CODE = 1888;
Button button;
ImageView imageView;
Uri imageUri;
@Override
public View onCreateView(LayoutInflater inflater, ViewGroup container,
Bundle savedInstanceState) {
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);
getActivity().startActivityForResult(intent, 100);
// Inflate the layout for this fragment
return inflater.inflate(R.layout.fragment_scan, container, false);
}
@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);
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());
}
}
}
}
【问题讨论】:
标签: android android-fragments camera