2012-01-28 16 views
20

Ho una galleria che mostra una serie di immagini, quando si fa clic vengono visualizzate in una vista di immagini. Voglio essere in grado di CONDIVIDERE l'immagine che viene attualmente visualizzata in un selettore di intenti. Non riesco a capire come selezionare l'immagine corrente.Ottenere immagini da ImageView

Code Gallery:

public View getView(int position, View convertView, ViewGroup parent) { 
     ImageView imageView = new ImageView(mContext); 

     imageView.setImageResource(mImageIds[position]); 
     imageView.setLayoutParams(new Gallery.LayoutParams(150, 120)); 
     imageView.setScaleType(ImageView.ScaleType.FIT_XY); 
     imageView.setBackgroundResource(mGalleryItemBackground); 

     return imageView; 
    } 

codice di selezione Intent:

Intent share = new Intent(Intent.ACTION_SEND); 
      share.setType("image/png"); 

      share.putExtra(Intent.EXTRA_STREAM, 
        Uri.parse("android.resource://com.appinfluence.fanapp.v1/drawable/" + Integer.toString(R.drawable.alright))); 

      startActivity(Intent.createChooser(share, "Share Image")); 

Dove dice R.drawable.alright ho bisogno che per essere una variabile dell'immagine corrente in qualche modo. Qualche idea?

risposta

55

per andare a prendere l'uso vista attualmente selezionata

Gallery.getSelectedView(); 

e per ottenere Drawable dall'uso IMAGEVIEW:

ImageVIew.getDrawable() 

Se si desidera ottenere InputStream dall'utilizzo drawable seguente:

BitmapDrawable bitmapDrawable = ((BitmapDrawable) drawable); 
Bitmap bitmap = bitmapDrawable .getBitmap(); 
ByteArrayOutputStream stream = new ByteArrayOutputStream(); 
bitmap.compress(Bitmap.CompressFormat.JPEG, 100, stream); 
byte[] imageInByte = stream.toByteArray(); 
ByteArrayInputStream bis = new ByteArrayInputStream(imageInByte); 
+0

Così come faccio ad ottenere l'immagine ImageView corrente in una stringa. Ad esempio R.drawable.alright dal mio codice qui sopra. Usando imageview.getdrawable.tostring() ottengo [email protected] –

+1

Anche se non ho usato, provate semplicemente usando: resources .getResourcePackageName (resId) + '/' + resources.getResourceTypeName (resId) + '/'+ resources.getResourceEntryName (resId); – jeet

+0

dove posso trovare varable disegnabile su questo programma –

3
l.setOnItemClickListener(new AdapterView.OnItemClickListener() { 
     @Override 
     public void onItemClick(AdapterView<?> parent, View view, int position, long id) { 
      TextView textView=(TextView)view.findViewById(R.id.textView); 
      ImageView imageView=(ImageView)view.findViewById(R.id.imageView); 
      String textViewString=textView.getText().toString(); 
      Bitmap image=((BitmapDrawable)imageView.getDrawable()).getBitmap(); 

      DialogClass dialogClass=new DialogClass(MainActivity.this,image,textViewString); 
      dialogClass.show(); 
     } 
    }); 
0

My Best Funzione

public class MainActivity extends Activity { 

    private ImageView imgView,bitmap; 
    @Override 
    protected void onCreate(Bundle savedInstanceState) { 
     super.onCreate(savedInstanceState); 
     setContentView(R.layout.activity_main); 

     imgView=(ImageView) findViewById(R.id.imgView); 
     bitmap=(ImageView) findViewById(R.id.bitmap); 

     //set view to bitmap image 
     bitmap.setImageBitmap(convertImageViewToBitmap(imgView)); 
    } 

    //function to convert imageView to Bitmap 

    private Bitmap convertImageViewToBitmap(ImageView v){ 

     Bitmap bm=((BitmapDrawable)v.getDrawable()).getBitmap(); 

     return bm; 
    } 

} 
Problemi correlati