2015-09-30 5 views
1

Я пытаюсь написать небольшой код, который позволяет мне отправлять изображение сразу после его снятия с камеры, я хочу отправить пиктограмму с захвата в камеру, но никогда не удается, м всегда получаю сообщение "Что-то пошло не так" Существует кодНевозможно загрузить захват изображения с камеры android

public void loadImagefromGallery(View view) { 
     CharSequence colors[] = new CharSequence[] {"Galery", "Foto"}; 
      AlertDialog.Builder builder = new AlertDialog.Builder(UserProfileActivity.this); 
      builder.setTitle("Pilih"); 
      builder.setItems(colors, new DialogInterface.OnClickListener() { 
       @Override 
       public void onClick(DialogInterface dialog, int which) { 
        if (which == 0) { 
         Intent galleryIntent = new Intent(Intent.ACTION_PICK, 
           android.provider.MediaStore.Images.Media.EXTERNAL_CONTENT_URI); 
         startActivityForResult(galleryIntent, RESULT_LOAD_IMG); 

        } else if (which == 1) { 
         Intent intent = new Intent("android.media.action.IMAGE_CAPTURE"); 
         //intent.putExtra(MediaStore.EXTRA_OUTPUT, fileUri); 
         startActivityForResult(intent, CAMERA_REQUEST); 
        } 
       } 
      }); 
     builder.show(); 
    } 

    @Override 
    protected void onActivityResult(int requestCode, int resultCode, Intent data) { 
     super.onActivityResult(requestCode, resultCode, data); 
     try { 
      if(requestCode == CAMERA_REQUEST){ 
       Bitmap photo = (Bitmap) data.getExtras().get("data"); 
       RoundedImageViewUtil imgView = (RoundedImageViewUtil) findViewById(R.id.profile); 
       imgView.setImageBitmap(photo); 

       Uri selectedImage = data.getData(); 
       String[] filePathColumn = { MediaStore.Images.Media.DATA }; 

       Cursor cursor = getContentResolver().query(selectedImage, 
         filePathColumn, null, null, null); 
       cursor.moveToFirst(); 

       int columnIndex = cursor.getColumnIndex(filePathColumn[0]); 
       imgPath = cursor.getString(columnIndex); 
       cursor.close(); 

       imgView.setImageBitmap(BitmapFactory 
         .decodeFile(imgPath)); 
       String fileNameSegments[] = imgPath.split("/"); 
       fileName = fileNameSegments[fileNameSegments.length - 1]; 
       params.put("filename", fileName); 

      } else if (requestCode == RESULT_LOAD_IMG && resultCode == RESULT_OK 
        && null != data) { 

       Uri selectedImage = data.getData(); 
       String[] filePathColumn = { MediaStore.Images.Media.DATA }; 

       Cursor cursor = getContentResolver().query(selectedImage, 
         filePathColumn, null, null, null); 
       cursor.moveToFirst(); 

       int columnIndex = cursor.getColumnIndex(filePathColumn[0]); 
       imgPath = cursor.getString(columnIndex); 
       cursor.close(); 
       RoundedImageViewUtil imgView = (RoundedImageViewUtil) findViewById(R.id.profile); 
       imgView.setImageBitmap(BitmapFactory 
         .decodeFile(imgPath)); 
       String fileNameSegments[] = imgPath.split("/"); 
       fileName = fileNameSegments[fileNameSegments.length - 1]; 
       params.put("filename", fileName); 

      } else { 
       Toast.makeText(this, "You haven't picked Image", 
         Toast.LENGTH_LONG).show(); 
      } 
     } catch (Exception e) { 
      Toast.makeText(this, "Something went wrong", Toast.LENGTH_LONG) 
        .show(); 
     } 

    } 

ответ

0

Intead из

Bitmap photo = (Bitmap) data.getExtras().get("data"); 

попробовать

Uri imageUri = (Uri)data.getData(); 

, а затем с uri получите растровое изображение.

+0

Ошибка в imgView.setImageBitmap (фото); – USSR2204

+0

Вы должны реализовать логику для получения растрового изображения из imageuri, поэтому его давая ошибку. – Pankaj

+0

Все еще не работает сэр. – USSR2204