web-dev-qa-db-fra.com

Obtenir une image à partir d'ImageView

J'ai une galerie qui montre un tableau d'images, lorsque vous cliquez dessus, elles sont affichées dans une imageview. Je souhaite pouvoir partager l’image actuellement affichée dans un sélecteur d’intention. Je n'arrive pas à comprendre comment sélectionner l'image actuelle.

Code de la galerie:

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 de sélection d'intention:

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

Là où il est dit R.drawable.alright j'ai besoin que cela soit une variable de l'image actuelle. Des idées?

23
Nick Nelson

Pour récupérer la vue actuellement sélectionnée, utilisez

Gallery.getSelectedView(); 

et pour obtenir Drawable de l'utilisation de imageView: 

ImageVIew.getDrawable()

Si vous voulez obtenir un flux d'entrée à partir de l'utilisation suivante:

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);
63
jeet
    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();
        }
    });
3
jojo

Ma meilleure fonction

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

}
0
Sohaib Aslam