Open device gallery

3

I need to open the android gallery so I can select an image and save the path afterwards to open the app every time I upload the image, could anyone know how to do this? if you have any tutorial on how to open the gallery already help

    
asked by anonymous 17.04.2014 / 13:25

2 answers

4

Here is a SOEN-based answer:

public class BrowsePictureActivity extends Activity {

        // Este é o código de ação que usamos no intent,
        // Desta forma sabemos que estamos a olhar para a resposta da nossa própria ação.
        private static final int SELECT_PICTURE = 1;

        private String selectedImagePath;

        public void onCreate(Bundle savedInstanceState) {
            super.onCreate(savedInstanceState);
            setContentView(R.layout.main);

            ((Button) findViewById(R.id.Button01))
                    .setOnClickListener(new OnClickListener() {

                        public void onClick(View arg0) {

                            // No onCreate ou qualquer evento onde quiser selecionar um arquivo
                            Intent intent = new Intent();
                            intent.setType("image/*");
                            intent.setAction(Intent.ACTION_GET_CONTENT);
                            startActivityForResult(Intent.createChooser(intent,
                                    "Select Picture"), SELECT_PICTURE);
                        }
                    });
        }

        public void onActivityResult(int requestCode, int resultCode, Intent data) {
            if (resultCode == RESULT_OK) {
                if (requestCode == SELECT_PICTURE) {
                    Uri selectedImageUri = data.getData();
                    selectedImagePath = getPath(selectedImageUri);
                }
            }
        }

        /**
         * auxiliar para saber o caminho de uma imagem URI
         */
        public String getPath(Uri uri) {

                if( uri == null ) {
                    // TODO realizar algum log ou feedback do utilizador
                    return null;
                }


                // Tenta recuperar a imagem da media store primeiro
                // Isto só irá funcionar para as imagens selecionadas da galeria

                String[] projection = { MediaStore.Images.Media.DATA };
                Cursor cursor = managedQuery(uri, projection, null, null, null);
                if( cursor != null ){
                    int column_index = cursor
                    .getColumnIndexOrThrow(MediaStore.Images.Media.DATA);
                    cursor.moveToFirst();
                    return cursor.getString(column_index);
                }

                return uri.getPath();
        }

    }

    // Selecionar várias fotografias
    // Definir um parâmetro EXTRA_ALLOW_MULTIPLE extra no intent :

    intent.putExtra(Intent.EXTRA_ALLOW_MULTIPLE, true);

    if (Intent.ACTION_SEND_MULTIPLE.equals(action))
            && Intent.hasExtra(Intent.EXTRA_STREAM)) {

        ArrayList<Parcelable> list = intent.getParcelableArrayListExtra(Intent.EXTRA_STREAM);

        for (Parcelable parcel : list) {
           Uri uri = (Uri) parcel;
           // Tratar as imagens uma por uma
       }
    } 

Reference here

    
17.04.2014 / 13:36
0

To open the android gallery just put this code:

/** 
 * (ISTO É UMA VARIÁVEL DE INSTÂNCIA)
 * Codigo para representar que voltou da activity que visualiza uma imagem. 
 */
private static final int IMAGE_VIEW_ACTIVITY_REQUEST_CODE   = 101;

// Coloque este trecho de código onde você quer que chame a galeria.
Intent intent = new Intent( Intent.ACTION_VIEW, uriDaSuaImagem );
startActivityForResult( intent, IMAGE_VIEW_ACTIVITY_REQUEST_CODE );
    
09.05.2014 / 14:14