获取图像的ImageView的图像、ImageView

2023-09-05 03:08:47 作者:更精彩的活∫

我有一个画廊,显示图像,点击的时候都显示在ImageView的数组。我希望能够分享当前正在显示的意图选择器的图像。我不知道如何选择当前的图像。

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.

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

意向选择器code:

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

R.drawable.alright凡说我需要为当前​​图像的变量不知。任何想法?

Where it says R.drawable.alright I need that to be a variable of the current image somehow. Any ideas?

推荐答案

要获取当前选定的视图使用

To fetch currently selected view use

Gallery.getSelectedView(); 

和从ImageView的使用越来越绘制对象:

and for getting Drawable from imageView use:

ImageVIew.getDrawable()

如果您想从可绘制采用以下获得的InputStream:

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