2012-10-12 9 views
5

Ho una vista di immagini in listview in prima attività, Voglio inviare la mia vista di immagini in seconda attività sul clic di voce listview.come inviare la visualizzazione di immagini da un'attività all'altra

ho cercato seguente code-

convertire immagini drawable in ByteArray: -

Bitmap bmp = BitmapFactory.decodeResource(getResources(), R.drawable.ic_launcher); 
       ByteArrayOutputStream stream = new ByteArrayOutputStream(); 
       bmp.compress(Bitmap.CompressFormat.PNG, 100, stream); 
       byte[] byteArray = stream.toByteArray(); 

Invio tramite Intent

Intent intent=new Intent(PicturesList.this,PictureDetail.class); 
       intent.putExtra("Bitmap", byteArray); 
       startActivity(intent); 

Al secondo activity

Bundle extras = getIntent().getExtras(); 
     byteArray = extras.getByteArray("Bitmap"); 

e

Bitmap bmp = BitmapFactory.decodeByteArray(byteArray, 0, byteArray.length); 
         imageview.setImageBitmap(bmp); 

Ma problema è qui-

Bitmap bmp = BitmapFactory.decodeResource(getResources(), R.drawable.ic_launcher); 

Questo richiederà immagine drawable e ho imageview, Posso convertire il mio imageview in drawable? o qualcosa di simile? Come inviare imageview anziché drawable. Qualcuno lo ha già fatto prima.

Ecco come ho impostato un'immagine in imageview

new AsyncTask<Void,Void,Void>() { 
      @Override 
      protected Void doInBackground(Void... params) { 


       try { 
        URL newurl = new URL("http://java.sogeti.nl/JavaBlog/wp-content/uploads/2009/04/android_icon_256.png"); 
        bitmap= BitmapFactory.decodeStream(newurl.openConnection().getInputStream()); 
        //bitmap = Bitmap.createScaledBitmap(bitmap, 50,50, true); 
       } 
       catch (MalformedURLException e) { 
        e.printStackTrace(); 
       } catch (IOException e) { 
        e.printStackTrace(); 
       } 
      // bitmap=imageLoader.DisplayImage("http://farm3.static.flickr.com/2199/2218403922_062bc3bcf2.jpg", imageview); 
       //bitmap = Bitmap.createScaledBitmap(bitmap, imageview.getWidth(), imageview.getHeight(), true); 
       return null; 
      } 
      @Override 
      protected void onPostExecute(Void result) { 
       super.onPostExecute(result); 
       imageview.setImageBitmap(bitmap); 
      } 
     }.execute(); 
+0

Come si imposta l'immagine per ImageView, in primo luogo? Dipende un bel po 'su quella realtà. –

+0

Ho impostato l'immagine su imageview usando l'URL. onclick di esso voglio visualizzarlo in seconda attività. – Ani

+0

sì va bene. Ma la mia domanda in che forma stai salvando l'immagine dall'URL. Avresti dovuto usare drawable giusto? –

risposta

4

Non è necessario convertire il bitmap in un array di byte. Bitmap è parcelable, quindi puoi semplicemente usare putParcelable(String, Parcelable) per aggiungerlo al pacchetto.

Edit:

Ad esempio:

Bundle extras = new Bundle(); 
extras.putParcelable("Bitmap", bmp); 
intent.putExtras(extras); 
startActivity(intent); 

Poi nella seconda attività:

Bundle extras = getIntent().getExtras(); 
Bitmap bmp = (Bitmap) extras.getParcelable("Bitmap"); 
+0

puoi elabora su questo. Bundle extras = new Bundle(); \t \t \t extras.putParcelable ("Bitmap", bitmap); è scritto? – Ani

+0

Sì, è vero. Ho modificato la mia risposta. – Magicode

+0

quanti dati possiamo inviare attraverso l'intento. L'immagine di grandi dimensioni può creare problemi per me? – Ani

0

io cosa si passa ID immagine e impostare l'ID nel prossimo attività IMAGEVIEW Ad es

GEt ID ((ImageView) v).getId(); 
SET ID imageView.setImageResource(imgId); 
+0

Ho impostato quell'immagine su imageview. Vuol dire che dovrei inviare l'id di visualizzazione delle immagini alla prossima attività attraverso l'intento. – Ani

+0

sì, passa l'immagine getID e imposta altra attività – ckpatel

0

È possibile convertire l'ImageView Per Bitmap.Try questo

Bitmap bitmap = Bitmap.createBitmap(imageView .getMeasuredWidth(),imageView .getMeasuredHeight(), Bitmap.Config.RGB_565); 
Canvas canvas = new Canvas(bitmap); 
ImageView .draw(canvas); 
+0

ciò fornisce un'eccezione puntatore nullo a me. – Ani

+0

Controllare il codice modificato. –

+0

ottiene ancora la stessa eccezione di puntatore nullo – Ani

Problemi correlati