Android Bitmap to File with Intent

时间:2016-01-18 04:10:10

标签: android android-intent bitmap

我有这个代码,它将数据库中的图像作为Bitmap获取,然后将其写入文件并通过电子邮件发送。这段代码效果很好。

我正在尝试将其写入实际显示图片的文本文件中。 这可能吗?

如果我想要一个显示图像的文件,我是否需要将其写入pdf文件?

这是我的代码

public void createBild(long x, String pathToFile, String fileName) {


    Product product = dbHandler.findProductbyId(x);


    Bitmap pic = BitmapFactory.decodeByteArray(dbHandler.fetchSingle(x), 0,
            dbHandler.fetchSingle(x).length);
    // create a file to write bitmap data
    Bitmap bitmap = pic;
    ByteArrayOutputStream bos = new ByteArrayOutputStream();
    bitmap.compress(CompressFormat.PNG, 0 /* ignored for PNG */, bos);
    byte[] bitmapdata = bos.toByteArray();
    File f = new File(pathToFile + "/"+fileName+".bmp");

    try {
        f.createNewFile();
        FileOutputStream fos = new FileOutputStream(f);
        fos.write(bitmapdata);
        fos.flush();
        fos.close();
    } catch (IOException e) {
        // TODO Auto-generated catch block
        e.printStackTrace();
    }

    Uri path = Uri.fromFile(f);
    Intent i = new Intent(Intent.ACTION_SEND);
    i.setType("image/*");
    i.putExtra(Intent.EXTRA_EMAIL, new String[] { "test@live.se" });
    i.putExtra(Intent.EXTRA_SUBJECT, "subject of email");
    i.putExtra(Intent.EXTRA_TEXT, "body of email");
    i.putExtra(Intent.EXTRA_STREAM, path);
    try {
        startActivity(Intent.createChooser(i, "Share"));
    } catch (android.content.ActivityNotFoundException e) {
        Toast.makeText(VisaData.this,
                "There are no email clients installed.", Toast.LENGTH_SHORT)
                .show();
    }



}

1 个答案:

答案 0 :(得分:1)

为什么不将它作为.png本身发送。 intent.setType( “图像/ PNG”);