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?
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);
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();
}
});
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;
}
}