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
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
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
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 );