Android 如何在我的应用程序中将图像从camera intent添加到ImageView
我正在尝试在我的应用程序中拍摄图像,然后将该图像返回到imageview。它会获取图像,但不会将图像返回到我的ImageView 以下是我所做的:Android 如何在我的应用程序中将图像从camera intent添加到ImageView,android,android-intent,Android,Android Intent,我正在尝试在我的应用程序中拍摄图像,然后将该图像返回到imageview。它会获取图像,但不会将图像返回到我的ImageView 以下是我所做的: @Override public View onCreateView(LayoutInflater inflater, ViewGroup container, Bundle savedInstanceState) { getActivity().setRequestedOrientation
@Override
public View onCreateView(LayoutInflater inflater, ViewGroup container,
Bundle savedInstanceState) {
getActivity().setRequestedOrientation(ActivityInfo.SCREEN_ORIENTATION_LANDSCAPE);
View rootView = inflater.inflate(R.layout.fragment_images, container, false);
imagev = (ImageView) rootView.findViewById(R.id.MyImages);
imagev.setOnClickListener(new View.OnClickListener() {
@Override
public void onClick(View view) {
Intent imageIntent = new Intent(android.provider.MediaStore.ACTION_IMAGE_CAPTURE);
timeStamp = new SimpleDateFormat("ddMMMyyyy_HH:mm:ss").format(new Date());
File imagesFolder = new File(Environment.getExternalStorageDirectory(), "My Taken Images");
imagesFolder.mkdirs();
image = new File(imagesFolder.getPath(), "Image_" + timeStamp + ".jpg");
fileUri = Uri.fromFile(image);
imageIntent.putExtra(MediaStore.EXTRA_OUTPUT, fileUri);
startActivityForResult(imageIntent, TAKE_PICTURE);
}
});
return rootView;
}
public void onActivityResult(int requestCode, int resultCode, Intent data) {
if (requestCode == TAKE_PICTURE && resultCode == RESULT_OK) {
imageview = ThumbnailUtils.extractThumbnail(BitmapFactory.decodeFile(String.valueOf(fileUri), 512, 384);
ExifInterface exif = null;
try {
exif = new ExifInterface(filep);
} catch (IOException e) {
e.printStackTrace();
}
int orientation = exif.getAttributeInt(ExifInterface.TAG_ORIENTATION, -1);
if (orientation != -1) {
switch (orientation) {
case ExifInterface.ORIENTATION_ROTATE_90:
rotate = 90;
break;
case ExifInterface.ORIENTATION_ROTATE_180:
rotate = 180;
break;
case ExifInterface.ORIENTATION_ROTATE_270:
rotate = 270;
break;
default:
rotate = 0;
break;
}
}
Matrix matrix = new Matrix();
matrix.postRotate(rotate);
imagev.setImageBitmap(imageview);
}
}
}
}
我做错了什么?
请帮忙
谢谢您这里至少有三个和两个问题
您没有得到结果的原因是您正在向decodeFile传递一个无效的值。解码文件采用路径;您正在传入一个文件:///string。从onCreateView中保留图像,或者在Uri上使用getPath来获取文件的路径
此外:
你经历了很多麻烦来建立一个矩阵,然后再也没有使用过它
在onCreateView中启动活动很奇怪
使用此选项,他实际上不会在onCreateView中启动活动,只是定义了回调,因此非常感谢您的响应。我想我理解,但你能告诉我我需要做什么吗?@forcewill:谢谢你指出这一点;我已经划掉了答案的这一部分。@Wildness:ReplaceString.valueOffileUri和fileUri.getPath。