Мне нужно поделиться изображением (в формате .png) с прозрачным фоном через намерение sent_action. Я много искал и пробовал много образцов, но не смог найти решение. Этот метод заключается в том, что изображение будет передано непосредственно из ресурсов, но по какой-то причине в какой-то момент он перестал работать.

Uri url = Uri.parse("android.resource://"
            + getPackageName() + "/" + R.drawable.ic_launcher);
    Intent share_intent = new Intent();
    share_intent.setAction(Intent.ACTION_SEND);
    share_intent.setType("image/png");
    share_intent.putExtra(Intent.EXTRA_STREAM,
            Uri.fromFile(new File(url.toString())));
    startActivity(Intent.createChooser(share_intent, "choose app"));

И есть эта функция, которая отлично работает, проблема в том, что она добавляет черный фон к изображению.

private void share3()
{
    Bitmap bitmap;
    OutputStream output;
    bitmap = BitmapFactory.decodeResource(getResources(), R.drawable.ic_launcher);
    File filepath = Environment.getExternalStorageDirectory();
    File dir = new File(filepath.getAbsolutePath() + "/Gallery/");
    dir.mkdirs();
    File file = new File(dir, "ic_launcher" + ".png");
    try {
        Intent share = new Intent(Intent.ACTION_SEND);
        share.setType("image/png");
        output = new FileOutputStream(file);
        bitmap. compress(Bitmap.CompressFormat.PNG/*Bitmap.CompressFormat.PNG*/, 0, output);
        output.flush();
        output.close();
        Uri uri = Uri.fromFile(file);
        share.putExtra(Intent.EXTRA_STREAM, uri);
        startActivity(Intent.createChooser(share, "choose app"));

    } catch (Exception e) {
        e.printStackTrace();
    }
}

Мне нужно поделиться изображением из «сырой» папки в ресурсах и поделиться им без фона. Что я должен делать?

1
ZZTDroid 10 Авг 2015 в 16:05
Вы пытаетесь поделиться изображением из папки с возможностью рисования ..???
 – 
Nils
10 Авг 2015 в 16:07
Drawable или raw не имеет значения. Они одинаковы по обращению.
 – 
ZZTDroid
10 Авг 2015 в 16:14
Что за ошибка в этом коде..???
 – 
Nils
10 Авг 2015 в 16:17

2 ответа

Я нашел проблему, это сама телеграмма. Telegram добавляет черный фон к изображениям .png, которыми вы делитесь.

1
ZZTDroid 16 Авг 2015 в 16:08
Есть какое-нибудь решение?
 – 
abbasalim
15 Апр 2018 в 12:52

Попробуйте это .. его работа для меня, чтобы поделиться изображением из папки с возможностью рисования.

 Bitmap bitmap = BitmapFactory.decodeResource(getResources(), R.drawable.ic_launcher);
    String path = Environment.getExternalStoragePublicDirectory(Environment.DIRECTORY_PICTURES) + "/LatestShare.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);
    Intent shareIntent = new Intent();
    shareIntent = new Intent(Intent.ACTION_SEND);
    shareIntent.setFlags(Intent.FLAG_ACTIVITY_NEW_TASK);
    shareIntent.putExtra(Intent.EXTRA_STREAM, bmpUri);
    shareIntent.setType("image/png");
    startActivity(Intent.createChooser(shareIntent, "Share with"));
0
Nils 10 Авг 2015 в 16:20
Он по-прежнему добавляет черный фон к изображению, когда я делюсь изображением в телеграмме.
 – 
ZZTDroid
12 Авг 2015 в 07:39