Android系统是自带分享功能

本文介绍了Android系统自带的分享功能及其实现方式,包括分享文字、图片、多图等,并提供了具体的代码示例。同时,还介绍了如何将内容分享到特定平台如微信。

简介

Android系统是自带分享功能的,不过也有一定的局限性,可以分享图片,文字,视频,音频等,也可以分享多图,但是不支持直接分享一个卡片(包括图文,链接),所以一般都是将需要分享的内容添加到图片中,或者通过整串文字的方式来分享。
下边是几种分享方式的具体代码:
action设为send或者send multiple,然后设置分享的类型和要分享内容

分享文字

Intent intent = new Intent();
intent.setAction(Intent.ACTION_SEND);
intent.putExtra(Intent.EXTRA_TEXT, "文本内容");
intent.setType("text/plain");
startActivity(intent);

分享图片

private void shareImage(Bitmap bitmap) {
    Intent intent = new Intent();
    intent.setAction(Intent.ACTION_SEND);
    Uri uri = Uri.parse(MediaStore.Images.Media.insertImage(mActivity.getContentResolver(), bitmap, "IMG" + Calendar.getInstance().getTime(), null));
    intent.setType("image/*");
    intent.putExtra(Intent.EXTRA_STREAM, uri);
    mActivity.startActivity(Intent.createChooser(intent, "title"));
}

分享多图

ArrayList<Uri> imageUris = new ArrayList<>();
imageUris.add(uri);
imageUris.add(uri);
Intent shareIntent = new Intent();
shareIntent.setAction(Intent.ACTION_SEND_MULTIPLE);
shareIntent.putParcelableArrayListExtra(Intent.EXTRA_STREAM, imageUris);
shareIntent.setType("image/*");
startActivity(Intent.createChooser(shareIntent, "dlgTitle"));

分享到指定平台

Intent wechatIntent = new Intent(Intent.ACTION_SEND);
wechatIntent.setPackage("com.tencent.mm");
wechatIntent.setType("text/plain");
wechatIntent.putExtra(Intent.EXTRA_TEXT, "分享到微信的内容");
startActivity(wechatIntent);

常用的就是这几种方式,下边是支持的分享类型:

text/plain
application/*
image/*
video/*
audio/*

项目中案例

   fun shareImage(context: Context?, bitmap: Bitmap?, isCircle: Boolean = false) {
        val intent = Intent()
        intent.action = Intent.ACTION_SEND
        val uri = Uri.parse(
            MediaStore.Images.Media.insertImage(
                context?.contentResolver,
                bitmap,
                "IMG" + Calendar.getInstance().time,
                null
            )
        )
        intent.setPackage("com.tencent.mm")
        intent.type = "image/*"
        if (isCircle) {
            intent.component =
                ComponentName("com.tencent.mm", "com.tencent.mm.ui.tools.ShareToTimeLineUI")
        } else {
            intent.component = ComponentName("com.tencent.mm", "com.tencent.mm.ui.tools.ShareImgUI")
        }
        intent.putExtra(Intent.EXTRA_STREAM, uri)
        context?.startActivity(Intent.createChooser(intent, "title"))
    }
评论
成就一亿技术人!
拼手气红包6.0元
还能输入1000个字符
 
红包 添加红包
表情包 插入表情
 条评论被折叠 查看
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

黄毛火烧雪下

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值