Come caricare un'image nella visualizzazione di immagini dalla galleria?

Ho un'attività che ha un button. Quando faccio clic sul button mi reindirizza alla galleria di immagini. Voglio mostrare l'image selezionata nell'attività successiva utilizzando una visualizzazione image. Ma non sta visualizzando l'image. La visualizzazione è spenta quando l'image è impostata.

Il codice per la selezione dell'image e il passaggio successivo è riportto di seguito. Non sto usando nessuna storia nella mia attività.

  • Sincronizzazione di due ViewPagers utilizzando OnPageChangeListener
  • Come suonare il suono durante l'esecuzione di alcune animazioni in Android
  • Robosco file di caricamento con SpringAndroidSpiceRequest
  • Arrestare AsyncTask nei frammenti quando viene premuto il button Indietro
  • la geolocalizzazione di javascript su android non funziona
  • Test di esecuzione non riuscito: l'esecuzione della strumentazione non è rioutput a causa di 'java.lang.ClassNotFoundException'
  • @Override protected void onActivityResult(int requestCode, int resultCode, Intent data) { super.onActivityResult(requestCode, resultCode, data); if (requestCode == RESULT_LOAD_IMAGE && resultCode == RESULT_OK && null != data) { 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]); String picturePath = cursor.getString(columnIndex); cursor.close(); if (!(picturePath.equals(""))) { Intent intent = new Intent(); intent.setClass(MainActivity.this, ImageInGellary.class); intent.putExtra("picturePath", picturePath); startActivity(intent); } } } public class ImageInGellary extends Activity { Button cancel; @Override public void onCreate(Bundle savedInstanceState) { super.onCreate(savedInstanceState); requestWindowFeature(Window.FEATURE_NO_TITLE); getWindow().setFlags(WindowManager.LayoutParams.FLAG_FULLSCREEN, WindowManager.LayoutParams.FLAG_FULLSCREEN); setContentView(R.layout.load_image); cancel = (Button) findViewById(R.id.buttonCancelPicture); Intent in = getIntent(); savedInstanceState = in.getExtras(); String picturePath = savedInstanceState.getString("picturePath"); ImageView imageView = (ImageView) findViewById(R.id.img_view); imageView.setImageBitmap(BitmapFactory.decodeFile(picturePath)); cancel.setOnClickListener(new OnClickListener() { public void onClick(View v) { /* * Intent i = new Intent(Intent.ACTION_PICK, * android.provider.MediaStore * .Images.Media.EXTERNAL_CONTENT_URI); * * startActivityForResult(i, RESULT_LOAD_IMAGE); */ Intent intent = new Intent(); intent.setClass(ImageInGellary.this, MainActivity.class); startActivity(intent); } }); } } 

  • Gradle + Robolectric: Dove posso mettere il file org.robolectric.Config.properties?
  • Come posso caricare un file json da un test di unità android eseguito con PowerMockRunner?
  • Chiunque abbia MediaRecorder Lavorare con ParcelFileDescriptor e createPipe ()?
  • iccp: non riconosce il profilo sRGB noto che è stato modificato
  • come diminuire la dimensione del button radio in android
  • LibGDX. disegnare il text multilinea
  • 5 Solutions collect form web for “Come caricare un'image nella visualizzazione di immagini dalla galleria?”

      public class ImageGalleryDemoActivity extends Activity { private static int RESULT_LOAD_IMAGE = 1; @Override public void onCreate(Bundle savedInstanceState) { super.onCreate(savedInstanceState); setContentView(R.layout.main); Button buttonLoadImage = (Button) findViewById(R.id.buttonLoadPicture); buttonLoadImage.setOnClickListener(new View.OnClickListener() { @Override public void onClick(View arg0) { Intent i = new Intent( Intent.ACTION_PICK, android.provider.MediaStore.Images.Media.EXTERNAL_CONTENT_URI); startActivityForResult(i, RESULT_LOAD_IMAGE); } }); } @Override protected void onActivityResult(int requestCode, int resultCode, Intent data) { super.onActivityResult(requestCode, resultCode, data); if (requestCode == RESULT_LOAD_IMAGE && resultCode == RESULT_OK && null != data) { 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]); String picturePath = cursor.getString(columnIndex); cursor.close(); ImageView imageView = (ImageView) findViewById(R.id.imgView); imageView.setImageBitmap(BitmapFactory.decodeFile(picturePath)); } } } 

    Se si vuole get in 1 linea allora tutto quello che wherete fare è:

     Picasso.with(MainActivity.this).load(data.getData()).noPlaceholder().centerCrop().fit().into((ImageView) findViewById(R.id.imageView1)); 

    Soluzione completa: –

    Scegli l'image

     public void pickImage() { Intent intent = new Intent(); intent.setType("image/*"); intent.setAction(Intent.ACTION_GET_CONTENT); startActivityForResult(Intent.createChooser(intent, "Select Picture"), SELECT_PICTURE); } 

    Carica l'image

     @Override protected void onActivityResult(int requestCode, int resultCode, Intent data) { super.onActivityResult(requestCode, resultCode, data); if (resultCode == RESULT_OK) { if (requestCode == SELECT_PICTURE) { //Get ImageURi and load with help of picasso //Uri selectedImageURI = data.getData(); Picasso.with(MainActivity1.this).load(data.getData()).noPlaceholder().centerCrop().fit() .into((ImageView) findViewById(R.id.imageView1)); } } } 

    Nella tua situazione devi passare ImageURI all'attività successiva

     Uri selectedImageURI = data.getData(); 
     public void onClick(View view) { Intent gallery = new Intent(Intent.ACTION_GET_CONTENT); gallery.setType("image/*"); startActivityForResult(gallery, RESULT_LOAD_IMAGE); } @Override protected void onActivityResult(int requestCode, int resultCode, Intent data) { super.onActivityResult(requestCode, resultCode, data); if(requestCode == RESULT_LOAD_IMAGE && resultCode == RESULT_OK){ Uri imageUri = data.getData(); imgView.setImageURI(imageUri); } } 

    Ho risolto il tuo problema. Dopo che l'image viene selezionata, convertite l'image Uri in String e nella seconda class, convertite la string all'image.

    http://whats-online.info/science-and-tutorials/95/Android-get-image-from-gallery-into-imageview-programmatically/

    http://whats-online.info/science-and-tutorials/49/Android-passing-multiple-data-from-one-activity-to-another/

     @Override protected void onActivityResult(int requestCode, int resultCode, Intent data) { switch(requestCode) { case SELECT_PHOTO: if(resultCode == RESULT_OK){ Uri selectedImage = data.getData(); if(selectedImage !=null){ Intent intent=new Intent(MainActivity.this, Activity2.class); Bundle extras = new Bundle(); extras.putString("image", selectedImage.toString()); intent.putExtras(extras); startActivity(intent); } } } 

    Activity2.class

      Bundle extras = getIntent().getExtras(); String name = extras.getString("image"); Uri imageFinal=Uri.parse(name); 

    Se nulla funziona, il seguente codice functionrà:

     import java.io.FileDescriptor; import java.io.IOException; import android.app.Activity; import android.content.Intent; import android.database.Cursor; import android.graphics.Bitmap; import android.graphics.BitmapFactory; import android.net.Uri; import android.os.Bundle; import android.os.ParcelFileDescriptor; import android.provider.MediaStore; import android.view.View; import android.widget.Button; import android.widget.ImageView; public class ImageGalleryDemoActivity extends Activity { private static int RESULT_LOAD_IMAGE = 1; /** Called when the activity is first created. */ @Override public void onCreate(Bundle savedInstanceState) { super.onCreate(savedInstanceState); setContentView(R.layout.main); Button buttonLoadImage = (Button) findViewById(R.id.buttonLoadPicture); buttonLoadImage.setOnClickListener(new View.OnClickListener() { @Override public void onClick(View arg0) { Intent i = new Intent( Intent.ACTION_PICK, android.provider.MediaStore.Images.Media.EXTERNAL_CONTENT_URI); startActivityForResult(i, RESULT_LOAD_IMAGE); } }); } @Override protected void onActivityResult(int requestCode, int resultCode, Intent data) { super.onActivityResult(requestCode, resultCode, data); if (requestCode == RESULT_LOAD_IMAGE && resultCode == RESULT_OK && null != data) { 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]); String picturePath = cursor.getString(columnIndex); cursor.close(); ImageView imageView = (ImageView) findViewById(R.id.imgView); Bitmap bmp = null; try { bmp = getBitmapFromUri(selectedImage); } catch (IOException e) { // TODO Auto-generated catch block e.printStackTrace(); } imageView.setImageBitmap(bmp); } } private Bitmap getBitmapFromUri(Uri uri) throws IOException { ParcelFileDescriptor parcelFileDescriptor = getContentResolver().openFileDescriptor(uri, "r"); FileDescriptor fileDescriptor = parcelFileDescriptor.getFileDescriptor(); Bitmap image = BitmapFactory.decodeFileDescriptor(fileDescriptor); parcelFileDescriptor.close(); return image; } } 
    L'Android è un fan Android di Google, tutto su telefoni Android, Android Wear, Android Dev e applicazioni Android Games e così via.