I am new to Android development. I don't know Android Studio and Java. But I am developing an app with the help of Google, YouTube and StackOverflow. Now I want to add share option (Image + text) in my Recyclerview
image to Whatsapp.
The image is loaded from Firebase
storage using Picasso
lib. I don't know how to convert Firebase ImageView
to bitmap
.
I have added a Share button below each item. How do I create share option in this sharebutton?
This is my MainActivity:
public class ReviewMainActivity extends AppCompatActivity {
private static final String APP_ID = "ca-app-pub-8867939169855032~3069406037";
FirebaseDatabase database;
DatabaseReference MCR;
RecyclerView recyclerView;
RecyclerView.LayoutManager layoutManager;
FirebaseRecyclerAdapter<ReviewModel, ReviewViewHolder> adapter;
@Override
protected void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
setContentView(R.layout.activity_review_main);
Toolbar toolbar = findViewById(R.id.ReviewMain_Toolbar);
setSupportActionBar(toolbar);
getSupportActionBar().setTitle(null);
toolbar.setLogo(R.mipmap.uploadpost);
toolbar.setOnClickListener(new View.OnClickListener() {
@Override
public void onClick(View v) {
Intent settingsIntent = new Intent(ReviewMainActivity.this, ReviewPostUploadActivity.class);
startActivity(settingsIntent);
}
});
if (getSupportActionBar()!=null){
getSupportActionBar().setDisplayHomeAsUpEnabled(true);
getSupportActionBar().setDisplayShowHomeEnabled(true);
}
MobileAds.initialize(this,APP_ID);
AdView adView = (AdView) findViewById(R.id.adView);
AdRequest adRequest = new AdRequest.Builder().build();
adView.loadAd(adRequest);
database = FirebaseDatabase.getInstance();
MCR = database.getReference("Review");
recyclerView = (RecyclerView)findViewById(R.id.recycler_ReviewMain);
recyclerView.setHasFixedSize(true);
LinearLayoutManager layoutManager = new LinearLayoutManager(this);
layoutManager.setReverseLayout(true);
layoutManager.setStackFromEnd(true);
recyclerView.setLayoutManager (layoutManager);
loadMenu();
}
private void loadMenu() {
adapter = new FirebaseRecyclerAdapter<ReviewModel, ReviewViewHolder>(ReviewModel.class,
R.layout.review_main_items,
ReviewViewHolder.class,MCR) {
@Override
protected void populateViewHolder(ReviewViewHolder viewHolder, ReviewModel model, final int position) {
viewHolder.Review_Title.setText(model.getTitle());
viewHolder.Profile_Name.setText(model.getProfileName());
Picasso.with(getBaseContext()).load(model.getImage())
.into(viewHolder.Review_Image);
Picasso.with(getBaseContext()).load(model.getProfileimage())
.into(viewHolder.Profile_Image);
final ReviewModel local = model;
viewHolder.Share_Icon.setOnClickListener(new View.OnClickListener() {
@Override
public void onClick(View view) {
}
});
}
};
recyclerView.setAdapter(adapter);
}
@Override
public boolean onOptionsItemSelected(MenuItem item) {
if (item.getItemId()==android.R.id.home)
finish();
return super.onOptionsItemSelected(item);
}
}
This is my Intent Part
Intent shareIntent;
Bitmap bitmap= BitmapFactory.decodeResource(getResources(),R.mipmap.ic_launcher);
String path = Environment.getExternalStoragePublicDirectory(Environment.DIRECTORY_PICTURES)+"/Share.png";
OutputStream out = null;
File file=new File(path);
try {
out = new FileOutputStream(file);
bitmap.compress(Bitmap.CompressFormat.PNG, 100, out);
out.flush();
out.close();
} catch (Exception e) {
e.printStackTrace();
}
path=file.getPath();
Uri bmpUri = Uri.parse("file://"+path);
shareIntent = new Intent(android.content.Intent.ACTION_SEND);
shareIntent.setFlags(Intent.FLAG_ACTIVITY_NEW_TASK);
shareIntent.putExtra(Intent.EXTRA_STREAM, bmpUri);
shareIntent.putExtra(Intent.EXTRA_TEXT,"Hey please check this application " + "https://play.google.com/store/apps/details?id=" +getPackageName());
shareIntent.setType("image/png");
startActivity(Intent.createChooser(shareIntent,"Share with"));