Autore Topic: Problema selezionareimmagine  (Letto 271 volte)

Offline david3ff3

  • Nuovo arrivato
  • *
  • Post: 27
  • Respect: 0
    • Mostra profilo
Problema selezionareimmagine
« il: 30 Agosto 2014, 19:50:02 CEST »
0
Salve ho un problema con la locazione dell immagine con il filcechoser se clicco su galleria tutto bene ma se vado su recente o immagini mi restituisce ad esempio image android/document/image:4484

Codice: [Seleziona]
if (resultCode == RESULT_OK) {
               if (requestCode == SELECT_PICTURE) {
                   Uri selectedImageUri = data.getData();
                   String filePath = null;
                  // String selectedImagePath = getPath(selectedImageUri);
                  // System.out.println("Image Path : " + selectedImagePath);
                   try {
                       // OI FILE Manager
                       String filemanagerstring = selectedImageUri.getPath();
                     
                       openPath(data.getData());
                       // MEDIA GALLERY
                       String selectedImagePath = getPath(Context,selectedImageUri);

                       if (selectedImagePath != null) {
                           filePath = selectedImagePath;
                           Toast.makeText(getApplicationContext(), filePath, Toast.LENGTH_SHORT).show();
                         
                           testofile.setText(filePath);
                           Bitmap myBitmap = BitmapFactory.decodeFile(filePath);
                           image.setImageBitmap(myBitmap);
               
                       } else if (filemanagerstring != null) {
                           filePath = filemanagerstring;
                           Toast.makeText(getApplicationContext(), filePath, Toast.LENGTH_SHORT).show();
                           testofile.setText(filePath);
                           Bitmap myBitmap = BitmapFactory.decodeFile(filePath);
                           image.setImageBitmap(myBitmap);
                       } else {
                               loadPicasaImageFromGallery(selectedImageUri);
                           Toast.makeText(getApplicationContext(), "Unknown path",
                                   Toast.LENGTH_LONG).show();
                          // Log.e("Bitmap", "Unknown path");
                       }

                     
                   } catch (Exception e) {
                       Toast.makeText(getApplicationContext(), e.getMessage(),
                               Toast.LENGTH_LONG).show();
                     //  Log.e(e.getClass().getName(), e.getMessage(), e);
                   }
               }
                  // Toast.makeText(getApplicationContext(), selectedImagePath, Toast.LENGTH_SHORT).show();
                  // Mail m = new Mail();
                   //m.mail(selectedImagePath);
               }
           }
        private void loadPicasaImageFromGallery(final Uri uri) {
            String[] projection = {  MediaColumns.DATA, MediaColumns.DISPLAY_NAME };
            Cursor cursor = getContentResolver().query(uri, projection, null, null, null);
            if(cursor != null) {
                cursor.moveToFirst();

                int columnIndex = cursor.getColumnIndex(MediaColumns.DISPLAY_NAME);
                if (columnIndex != -1) {
                    new Thread(new Runnable() {
                        // NEW THREAD BECAUSE NETWORK REQUEST WILL BE MADE THAT WILL BE A LONG PROCESS & BLOCK UI
                        // IF CALLED IN UI THREAD
                        public void run() {
                            try {
                                Bitmap bitmap = android.provider.MediaStore.Images.Media.getBitmap(getContentResolver(), uri);
                                // THIS IS THE BITMAP IMAGE WE ARE LOOKING FOR.
                            } catch (Exception ex) {
                                ex.printStackTrace();
                            }
                        }
                    }).start();
                }
            }
            cursor.close();
        }
        public void openPath(Uri uri){
                   InputStream is = null;
                   try {
                       is = getContentResolver().openInputStream(uri);
                       //Convert your stream to data here
                       is.close();

                   } catch (FileNotFoundException e) {
                       e.printStackTrace();
                   } catch (IOException e) {
                       // TODO Auto-generated catch block
                       e.printStackTrace();
                   }
                }
                public String getPath(Uri uri) {
                    String[] projection = {  MediaColumns.DATA};
                    Cursor cursor = getContentResolver().query(uri, projection, null, null, null);
                    if(cursor != null) {
                     
                        cursor.moveToFirst();
                        int columnIndex = cursor.getColumnIndexOrThrow(MediaColumns.DATA);
                        String filePath = cursor.getString(columnIndex);
                        cursor.close();
                        return filePath;
                    }
                    else
                        return uri.getPath();               // FOR OI/ASTRO/Dropbox etc
                }
« Ultima modifica: 30 Agosto 2014, 20:02:07 CEST da david3ff3 »