Change this in the code ....
First remove this line from the constructor
imageLoader = new ImageLoader(context);
Change it to
ImageLoader imageLoader = ImageLoader.getInstance();
Secondly remove this line from the code :
imageLoader.DisplayImage(mediaList.get(position).getUrl(), loader, holder.imageview );
Change it to
imageLoader.loadImage(mediaList.get(position).getUrl(), new SimpleImageLoadingListener() {
@Override
public void onLoadingComplete(String imageUri, View view, Bitmap loadedImage) {
holder.button.setOnClickListener(new View.OnClickListener() {
@Override
public void onClick(View v) {
Intent shareIntent = new Intent(Intent.ACTION_SEND);
shareIntent.setType("text/plain");
shareIntent.putExtra(Intent.EXTRA_TEXT,mediaList.get(position).getTitre());
shareIntent.setType("image/*");
shareIntent.putExtra(Intent.EXTRA_STREAM, getImageUri(context,loadedImage));
try {
context.startActivity(shareIntent);
} catch (Exception ex) {
Toast.makeText(context, ex.getMessage(),Toast.LENGTH_LONG).show();
}
}
});
}
});
Use this method to transform bitmap to uri:
public Uri getImageUri(Context inContext, Bitmap inImage) {
ByteArrayOutputStream bytes = new ByteArrayOutputStream();
inImage.compress(Bitmap.CompressFormat.JPEG, 100, bytes);
String path = Images.Media.insertImage(inContext.getContentResolver(),inImage, "Title", null);
return Uri.parse(path);
}
This will open the the share option for sharing to all the other apps including facebook. If facebook is selected by the user,then the image will be opened in the facebook app (if installed).Let me know if it working for you or not.