使用Intent共享PNG图像(它将图像格式从png更改为jpeg)

时间:2016-11-16 20:43:07

标签: android image android-intent png share

我想创建一个使用Intent共享我的图像的函数。问题是;我有png图像,当我使用Intent共享图像时,它将图像格式png的格式更改为jpeg。例如,当我调用意图分享时,我的image.png没有背景(透明),它将图像背景更改为黑色并格式化为image.jpg。

这是我的代码

 protected void ShareImage( )
    {
        Intent sharingIntent = new Intent(Intent.ACTION_SEND);   
        sharingIntent.setType("image/png");
        Bitmap imgBitmap = BitmapFactory.decodeResource(getResources(), R.drawable.image );
        String imgBitmapPath=      MediaStore.Images.Media.insertImage(getContentResolver(),imgBitmap,"title",null);
        Uri imageUri=Uri.parse(imgBitmapPath);
        sharingIntent.putExtra(Intent.EXTRA_STREAM, imageUri);
        startActivity(Intent.createChooser(sharingIntent, "Share images to.."));
    }

请帮我分享图片而不更改格式..谢谢

1 个答案:

答案 0 :(得分:0)

将位图转换为Uri

private Uri getImageUri(Context inContext, Bitmap inImage) {
    ByteArrayOutputStream bytes = new ByteArrayOutputStream();
    inImage.compress(Bitmap.CompressFormat.PNG, 99, bytes);

    String path = MediaStore.Images.Media.insertImage(inContext.getContentResolver(), inImage, "Title", null);
    return Uri.parse(path);
}

并添加您的应用程序清单

<uses-permission android:name="android.permission.WRITE_EXTERNAL_STORAGE"/>