2015-10-17 3 views
-1

Я новичок в android, и я получаю эту ошибку, когда пытаюсь использовать decodefile().Невозможно декодировать поток java.io.FileNotFoundException в android?

Вот код

protected void onActivityResult(int requestCode, int resultCode, Intent data) { 

if ((requestCode == PICK_FROM_GALLERY) && (resultCode == RESULT_OK) &&  (data != null)){ 
     selectedImageUri = data.getData(); 
     Log.e("Path1", ""+selectedImageUri); 
     path1 = selectedImageUri.getPath(); 
     file = new File(path1); 
     path =file.getAbsolutePath(); 
     Log.e("Path2", file.getAbsolutePath()); 

     mImageView.setImageURI(selectedImageUri); 
    }} 

protected void badButtonPressed() { 
    final long startTime = SystemClock.uptimeMillis(); 


    BitmapFactory.Options options = new BitmapFactory.Options(); 
    // Part 1: Decode image 
    >> Bitmap unscaledBitmap = BitmapFactory.decodeFile(path, options); 
    imageHeight = options.outHeight; 
    imageWidth = options.outWidth; 
    Log.e("w", ""+imageWidth); 
    Log.e("h", ""+imageHeight); 

Пожалуйста скажите мне мою ошибку.

+1

Пожалуйста, пост полный StackTrace. –

+0

Добро пожаловать в переполнение стека. Я отредактировал ваше сообщение, чтобы исправить несколько вопросов английского языка. Я также выделил имя функции, используя две звездочки. Я не вижу ошибки, о которых вы упоминаете. Измените свой пост и покажите нам ошибку (используйте> в начале строки для ее маркировки). –

+1

@RohutGupta Вы выбрали имя функции, почему? Когда форматирование кода уже существует? – EJP

ответ

0

нашел этот ответ

Intent intent = new Intent(Intent.ACTION_PICK, MediaStore.Images.Media.EXTERNAL_CONTENT_URI); 
        intent.setType("image/*"); 
        startActivityForResult(intent, SELECT_IMAGE); 

    protected void onActivityResult(int requestCode, int resultCode, Intent intent) { 
     super.onActivityResult(requestCode, resultCode, intent); 
     if (resultCode == RESULT_OK) { 
      if (requestCode == SELECT_IMAGE) { 
       try { 
        selectedImagePath = getAbsolutePath(intent.getData()); 
        mImageCaptureUri = intent.getData(); 
       } catch (Exception e) { 
        e.printStackTrace(); 
       } 
      } 
     } 

    } 

    public String getAbsolutePath(Uri uri) { 
     String[] projection = {MediaStore.MediaColumns.DATA}; 
     @SuppressWarnings("deprecation") 
     Cursor cursor = managedQuery(uri, projection, null, null, null); 
     if (cursor != null) { 
      int column_index = cursor.getColumnIndexOrThrow(MediaStore.MediaColumns.DATA); 
      cursor.moveToFirst(); 
      return cursor.getString(column_index); 
     } else 
      return null; 
    } 
-1

Пожалуйста, попробуйте.

int PICK_FROM_GALLERY = 3; 
String path; 
@Override 
protected void onActivityResult(int requestCode, int resultCode, Intent data) { 

    if (requestCode == PICK_FROM_GALLERY 
      && resultCode == Activity.RESULT_OK) { 

     try { 
      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]); 
      path = cursor.getString(columnIndex); 



      cursor.close(); 
     } catch (NullPointerException e) { 

     } 

    } 
} 

public void pickFromGallery() 
{ 
    Intent i = new Intent(Intent.ACTION_PICK, 
      android.provider.MediaStore.Images.Media.EXTERNAL_CONTENT_URI); 
    startActivityForResult(i, PICK_FROM_GALLERY); 
} 
+0

все еще ошибка указателя null там ничего нет ничего в «пути» –

+0

Когда вы вызываете badButtonPressed()? – Hasanaga

+0

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

Смежные вопросы