Autore Topic: prendere immagine da galleria e spostare in altra cartella  (Letto 249 volte)

Offline xixietto

prendere immagine da galleria e spostare in altra cartella
« il: 11 Maggio 2016, 17:39:10 CEST »
0
salve, il mio scopo è quello di far scegliere all'utente un immagine presente in galleria e spostarla in un'altra cartella.
sapete aiutarmi
Codice: [Seleziona]
    Caused by: java.lang.NullPointerException: Attempt to invoke virtual method 'java.io.File android.content.Context.getDir(java.lang.String, int)' on a null object reference
Codice (Java): [Seleziona]
 private static final int PICK_IMAGE = 1; //Può essere un numero qualsiasi
    private static final String PICTURE_FOLDER = Environment.getExternalStorageDirectory().getPath() + "/Macelleria"; //La cartella privata dove salvare
Codice (Java): [Seleziona]
 // prendere valore edittext con bottone
        aggiungi_elemento.setOnClickListener(new View.OnClickListener() {
            @Override
            public void onClick(View arg0) {
                //Richiedo al SO la selezione di un'immagine dalla galleria
                Intent intent = new Intent();
             //   intent.setAction(Intent.ACTION_GET_CONTENT);
                intent.setAction(Intent.ACTION_PICK);
                intent.setType("image/*");
                startActivityForResult(intent,1);
               // Intent intentOpenImage = new Intent(Intent.ACTION_PICK, MediaStore.Images.Media.EXTERNAL_CONTENT_URI);
               // startActivityForResult(intentOpenImage, GALLERY_PICTURE);
            }
        });

Codice (Java): [Seleziona]
 @Override
        protected void onActivityResult(int requestCode, int resultCode, Intent data) {
            super.onActivityResult(requestCode, resultCode, data);
            if (requestCode == PICK_IMAGE && resultCode == RESULT_OK && data != null) {

              //  File destFile  = new File(Environment.getExternalStorageDirectory().getPath() + "/Macelleria");
             //   if (!destFile .exists())
                //    destFile .mkdirs();
                File destFile = new File(context.getDir(PICTURE_FOLDER, Context.MODE_PRIVATE),
                        "nomeImmagine.jpg" //Questo dovrà cambiare di volta in volta
                );
                if (importImage(this, data.getData(), destFile)) {
                    String percorso = destFile.getAbsolutePath();

                }


                Uri immagine_presa = data.getData(); //url immagine presa

                String[] filePathColumn = { MediaStore.Images.Media.DATA };
                Log.d("1?", String.valueOf(immagine_presa) + " " + filePathColumn);//calcolo posizione riguardo la gridview
                File sd = new File(Environment.getExternalStorageDirectory().getPath() + "/Macelleria");
            } }


    private boolean importImage(Context ctx ,Uri rawUri, File destFile) {
        InputStream fis;
        OutputStream fos;
        int byteCount;
        byte[] buffer = new byte[2048];
        boolean imported = false;

        try {
            fis = ctx.getContentResolver().openInputStream(rawUri);
            try {
                fos = new FileOutputStream(destFile);
                try {
                    while ((byteCount = fis.read(buffer)) > 0) {
                        fos.write(buffer, 0, byteCount);
                    }
                    imported = true;
                } finally {
                    fos.close();
                }
            } finally {
                fis.close();
            }
        } catch (IOException e) {
            e.printStackTrace();
        }

        return imported;
    }
            }
« Ultima modifica: 11 Maggio 2016, 19:42:55 CEST da xixietto »