首页 > 解决方案 > 如何使用位图将检索到的图像从 Sqlite 数据库共享到社交媒体?

问题描述

我是 android 新手。我开发了一个基于 Sqlite 数据库的 android 应用程序。我的应用程序一切正常,但问题是如何将检索到的图像从 Sqlite 数据库共享到社交媒体,如 Whatsapp、电子邮件、Facebook 等。我不'不想从 sdcard 共享图像。这是我的源代码

MainActivity.java

public class MainActivity extends AppCompatActivity {
String IDholder;

Button Share;
DatabaseHelper dbLoginHelper;
SQLiteDatabase sqLiteDatabase;
ImageView imageView;
Bitmap bmp;
@Override
protected void onCreate(Bundle savedInstanceState) {
    super.onCreate(savedInstanceState);
    setContentView(R.layout.activity_edit_reports);

    Share=(Button)findViewById(R.id.report_share);
    imageView=(ImageView)findViewById(R.id.report_image3);
    dbLoginHelper=new DatabaseHelper(this);
    IDholder = getIntent().getStringExtra("EditID");

    Share.setOnClickListener(new View.OnClickListener() {
        @Override
        public void onClick(View v) {
        shareImage();

        }
    });


}
private void shareImage() {
    Intent share = new Intent(Intent.ACTION_SEND);
    share.setType("image/*");
    share.putExtra(Intent.EXTRA_STREAM, bmp);
    startActivity(Intent.createChooser(share, "Share Image!"));
}

@Override
protected void onResume() {

    showImage();
    super.onResume();
}

private void showImage() {
    sqLiteDatabase = dbLoginHelper.getWritableDatabase();


 Cursor cursor = sqLiteDatabase.rawQuery("SELECT * FROM " + DatabaseHelper.Patient_Reports + " WHERE _rid = " + IDholder + "", null);

    if (cursor.moveToFirst()) {

        do {

            byte[] img = cursor.getBlob(cursor.getColumnIndex("Image"));
            bmp = BitmapFactory.decodeByteArray(img, 0, img.length);

            imageView.setImageBitmap(Bitmap.createScaledBitmap(bmp, 
            bmp.getWidth(),bmp.getHeight(), false));


        }
        while (cursor.moveToNext());

        cursor.close();

    }
    }
    }

从 Sqlite 数据库成功检索图像,然后如何将此位图图像共享到社交媒体。上面我添加了 shareImage() 但它不起作用请帮助我。

标签: androidandroid-sharing

解决方案


推荐阅读