1
SelectedImageConstraintLayout
안에있는 SelectedImageView
으로 사진을 찍어 보여야합니다. 갤러리를 열고 그림을 선택하면 완벽하게 작동하지만 카메라에서는 작동하지 않습니다. SelectedImageConstraintLayout
은 전혀 표시되지 않습니다.ConstraintLayout Visibility 카메라로 사진을 찍은 후 표시되지 않습니다.
void OpenCamera()
{
Intent intent = new Intent(MediaStore.ActionImageCapture);
var filename = new File(this.ViewModel.IssuePhotosDirPath,
this.ViewModel.TEMP_PHOTO_FILENAME);
intent.PutExtra(MediaStore.ExtraOutput, Uri.FromFile(filename));
StartActivityForResult(intent, OPEN_CAMERA_ID);
}
protected override void OnActivityResult(int requestCode, Result resultCode, Intent data)
{
base.OnActivityResult(requestCode, resultCode, data);
if (resultCode == Result.Ok)
{
var issuePhotoFilename = System.IO.Path.Combine(this.ViewModel.IssuePhotosDirPath,
this.ViewModel.TEMP_PHOTO_FILENAME);
switch(requestCode)
{
case OPEN_CAMERA_ID:
ShowIssueImage(issuePhotoFilename);
break;
case OPEN_GALLERY_ID:
//do something to save the image in temp file before showing it
ShowIssueImage(issuePhotoFilename);
break;
}
}
}
void ShowIssueImage(string fileName)
{
if (SelectedImageViewWidth > 0 && SelectedImageViewHeight > 0)
{
var bitmap = fileName.ResizeAndRotate(SelectedImageViewWidth, SelectedImageViewHeight);
SelectedImageView.SetImageBitmap(bitmap);
bitmap = null;
}
else
{
SelectedImageView.SetImageBitmap(BitmapFactory.DecodeFile(fileName));
}
AddImageConstraintLayout.Visibility = ViewStates.Gone;
SelectedImageConstraintLayout.Visibility = ViewStates.Visible;
}
void RemoveIssueImage()
{
SelectedImageConstraintLayout.Visibility = ViewStates.Gone;
AddImageConstraintLayout.Visibility = ViewStates.Visible;
var issuePhotoFilename = System.IO.Path.Combine(this.ViewModel.IssuePhotosDirPath, this.ViewModel.TEMP_PHOTO_FILENAME);
System.IO.File.Delete(issuePhotoFilename);
}
무엇이 문제입니까?