2012-01-28 26 views
20

Tengo una galería que muestra una matriz de imágenes, cuando se hace clic se muestran en una vista de imagen. Quiero poder COMPARTIR la imagen que se muestra actualmente en un selector de intenciones. No puedo encontrar la manera de seleccionar la imagen actual.Obtener imagen de ImageView

código Galería:

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

Intención código de selector:

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

Donde dice R.drawable.alright necesito que para ser una variable de la imagen actual de alguna manera. ¿Algunas ideas?

Respuesta

55

a buscar el uso de vista seleccionado

Gallery.getSelectedView(); 

y para conseguir Disponibles del uso imageView:

ImageVIew.getDrawable() 

Si desea obtener flujo de entrada de la utilización dibujable siguiente:

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

Entonces, ¿cómo puedo obtener la imagen imageview actual en una cadena. Por ejemplo, R.drawable.alright desde mi código anterior. Usando imageview.getdrawable.tostring() obtengo [email protected] –

+1

Aunque no lo he usado, intente usando: resources .getResourcePackageName (resId) + '/' + resources.getResourceTypeName (resId) + '/'+ resources.getResourceEntryName (resId); – jeet

+0

donde puedo encontrar varible dibujable en este programa –

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

Mi Mejor Función

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

} 
Cuestiones relacionadas