I have a gallery that shows an array of images, when clicked they are displayed in an imageview. I want to be able to SHARE the image that is currently being displayed in an intent chooser. I can't figure out how to select the current image.
Gallery code:
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; }
Intent chooser code:
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"));
Where it says R.drawable.alright I need that to be a variable of the current image somehow. Any ideas?
//to get the image from the ImageView (say iv) BitmapDrawable draw = (BitmapDrawable) iv. getDrawable(); Bitmap bitmap = draw. getBitmap(); FileOutputStream outStream = null; File sdCard = Environment. getExternalStorageDirectory(); File dir = new File(sdCard.
Bitmap bm=((BitmapDrawable)imageView. getDrawable()). getBitmap(); Try having the image in all drawable qualities folders (drawable-hdpi/drawable-ldpi etc.)
To fetch currently selected view use
Gallery.getSelectedView();
and for getting Drawable from imageView use:
ImageVIew.getDrawable()
If you want to get inputstream from the drawable use following:
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);
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(); } });
If you love us? You can donate to us via Paypal or buy me a coffee so we can maintain and grow! Thank you!
Donate Us With