Advertisement
Guest User

Untitled

a guest
Jun 25th, 2019
84
0
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
text 4.11 KB | None | 0 0
  1. public void onClickCamera(View v){
  2. Intent cameraIntent = new Intent(android.provider.MediaStore.ACTION_IMAGE_CAPTURE);
  3. startActivityForResult(cameraIntent, CAMERA_REQUEST);
  4. }
  5.  
  6. public void onActivityResult(int requestCode, int resultCode, Intent data) {
  7. if (requestCode == CAMERA_REQUEST && resultCode == RESULT_OK) {
  8. Bitmap photo = (Bitmap)data.getExtras().get("data");
  9. imageView.setScaleType(ImageView.ScaleType.FIT_XY);
  10. imageView.setImageBitmap(photo);}}
  11.  
  12. protected void onActivityResult(int requestCode, int resultCode, Intent data) {
  13. if (requestCode == CAMERA_REQUEST && resultCode == RESULT_OK) {
  14. Bitmap photo = (Bitmap) data.getExtras().get("data");
  15. imageView.setScaleType(ImageView.ScaleType.FIT_XY);
  16. imageView.setImageBitmap(photo);
  17. knop.setVisibility(Button.VISIBLE);
  18.  
  19.  
  20. // Chame este método pra obter a URI da imagem
  21. Uri uri = getImageUri(getApplicationContext(), photo);
  22.  
  23. // Em seguida chame este método para obter o caminho do arquivo
  24. File file = new File(getRealPathFromURI(uri));
  25.  
  26. System.out.println(file.getPath());
  27. }
  28. }
  29.  
  30. public Uri getImageUri(Context inContext, Bitmap inImage) {
  31. ByteArrayOutputStream bytes = new ByteArrayOutputStream();
  32. inImage.compress(Bitmap.CompressFormat.JPEG, 100, bytes);
  33. String path = Images.Media.insertImage(inContext.getContentResolver(), inImage, "Title", null);
  34. return Uri.parse(path);
  35. }
  36.  
  37. public String getRealPathFromURI(Uri uri) {
  38. Cursor cursor = getContentResolver().query(uri, null, null, null, null);
  39. cursor.moveToFirst();
  40. int idx = cursor.getColumnIndex(MediaStore.Images.ImageColumns.DATA);
  41. return cursor.getString(idx);
  42. }
  43.  
  44. /**
  45. * (ISTO é uma variável de instância) Contem o caminho e o nome do arquivo onde desejamos salvar a imagem.
  46. * Usado principalmente para iniciar uma Intent.Action_View com esta URI. (GalleryApp)
  47. */
  48. private Uri uriImagem = null;
  49.  
  50. public void onClickCamera(View v){
  51. // Cria uma intent para capturar uma imagem e retorna o controle para quem o chamou (NAO PRECISA DECLARAR PERMISSAO NO MANIFESTO PARA ACESSAR A CAMERA POIS O FAZEMOS VIA INTENT).
  52. Intent intent = new Intent( MediaStore.ACTION_IMAGE_CAPTURE );
  53. // Cria um arquivo para salvar a imagem.
  54. uriImagem = ProcessaImagens.getOutputMediaFileUri( ProcessaImagens.MEDIA_TYPE_IMAGE, getActivity().getApplicationContext() );
  55. // Passa para intent um objeto URI contendo o caminho e o nome do arquivo onde desejamos salvar a imagem. Pegaremos atraves do parametro data do metodo onActivityResult().
  56. intent.putExtra( MediaStore.EXTRA_OUTPUT, uriImagem );
  57. // Inicia a intent para captura de imagem e espera pelo resultado.
  58. startActivityForResult( intent, CAPTURE_IMAGE_ACTIVITY_REQUEST_CODE );
  59. }
  60.  
  61. @Override
  62. public void onActivityResult( int requestCode, int resultCode, Intent data ) {
  63. // Se finalizou a activity em startForActivityResult.
  64. if ( resultCode == Activity.RESULT_OK ) {
  65. if ( requestCode == CAPTURE_IMAGE_ACTIVITY_REQUEST_CODE ) {
  66. String imagemPath = uriImagem.getPath();
  67. // Vou compactar a imagem, leia o javadoc do médoto e verá que ela retorna tanto um bitmap como um array de bytes.
  68. List<Object> imagemCompactada = ProcessaImagens.compactarImagem( uriImagem.getPath() );
  69. Bitmap imagemBitmap = (Bitmap) imagemCompactada.get( 0 );
  70. byte[] imagemBytes = (byte[]) imagemCompactada.get( 1 );
  71.  
  72. }
  73. }
  74. // Se cancelou a activity em startForActivityResult.
  75. else if ( resultCode == Activity.RESULT_CANCELED ) {
  76. if ( requestCode == CAPTURE_IMAGE_ACTIVITY_REQUEST_CODE ) {
  77. // Usuario cancelou a captura da imagem.
  78. Log.d( getTag(), "Captura de imagem CANCELADA!" );
  79. }
  80. }
  81. // Se ocorreu algum erro na activity em startForActivityResult.
  82. else {
  83. // Captura da imagem falhou, avisa ao usuario.
  84. Toast.makeText( getActivity().getApplicationContext(), "FALHA! A captura da imagem falhou!", Toast.LENGTH_LONG ).show();
  85. Log.e( getTag(), "FALHA! A captura da imagem falhou!" );
  86. }
  87. }
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement