앱 개발중인 초보개발자입니다. 촬영후 이미지가 넘어가서 이미지뷰에 보여주는 코드인데 사진이 90도 회전되어서 나옵니다. 수정사항 가르켜주시면 열심히 배우겠습니다.(찾아보고 적용해도 안먹어서 ㅠㅠ
public class CameraActivity extends AppCompatActivity {
private String mCurrentPhotoPath;
@Override
protected void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
setContentView(R.layout.activity_camera);
Intent intent = new Intent(MediaStore.ACTION_IMAGE_CAPTURE);
try {
File phtoFile = createImageFile();
Uri photoUri = FileProvider.getUriForFile(this, "com.hionshop.hionevent.fileprovider", phtoFile);
intent.putExtra(MediaStore.EXTRA_OUTPUT, photoUri);
startActivityForResult(intent, 0);
} catch (IOException e) {
e.printStackTrace();
ImageView imageView = (ImageView) findViewById(R.id.imageView2);
imageView.setImageBitmap(BitmapFactory.decodeFile(mCurrentPhotoPath));
}
requirePermission();
@Override
public void onClick(View view) {
takePicture();
}
});
}
void takePicture() {
Intent intent = new Intent(MediaStore.ACTION_IMAGE_CAPTURE);
try {
File phtoFile = createImageFile();
Uri photoUri = FileProvider.getUriForFile(this, "com.hionshop.hionevent.fileprovider", phtoFile);
intent.putExtra(MediaStore.EXTRA_OUTPUT, photoUri);
startActivityForResult(intent, 0);
} catch (IOException e) {
e.printStackTrace();
}
}
private File createImageFile() throws IOException {
// Create an image file name 이미지 파일 만들기
String timeStamp = new SimpleDateFormat("yyyyMMdd_HHmmss").format(new Date());
String imageFileName = "JPEG_" + timeStamp + "_";
File storageDir = getExternalFilesDir(Environment.DIRECTORY_PICTURES);
File image = File.createTempFile(
imageFileName, /* prefix */
".jpg", /* suffix */
storageDir /* directory */
);
mCurrentPhotoPath = image.getAbsolutePath();
return image;
}
@Override
protected void onActivityResult(int requestCode, int resultCode, Intent data) {
if (requestCode == 0) {
ImageView imageView = (ImageView) findViewById(R.id.imageView2);
imageView.setImageBitmap(BitmapFactory.decodeFile(mCurrentPhotoPath));
}
}
private Bitmap rotate(Bitmap src, float degree){
Matrix matrix = new Matrix();
matrix.postRotate(degree);
return Bitmap.createBitmap(src,0,0,src.getWidth(),src.getHeight(),matrix, true);
}
}
)