Android 最大化分享图文内容

近期在做一个支持图文混排的便签应用,分享的时候遇到了问题.要么只能分享文字,要么就只能分享图片.


分享这个东西不仅依靠于你写的代码,还依靠于其他应用实现接收的方式.我们能够实现的效果不仅取决我们,还取决于其他应用.

所以我们只能尽量的提供充分的内容,让其他应用能够在需要时读取.

我们可以按照以下逻辑编写分享图文的代码

public Intent createIntent(){
	Intent intent = new Intent();
		intent.putExtra(Intent.EXTRA_SUBJECT, "分享的标题");//一般用于邮件
		intent.putExtra(Intent.EXTRA_TEXT, toPlainText());
		if(!hasImage()){//如果没有图片则设置类型为text/plain
			intent.setAction(Intent.ACTION_SEND);
			intent.setType("text/plain");
		}else{
			//获取要分享的Image的Uri数字
			ArrayList<Uri> imageUris = getImageUris();
			//只要有图片就设置type为image/*
			intent.setType("image/*");
			if(imageUris.size() == 1){
				//一张图片用ACTION_SEND
				intent.setAction(Intent.ACTION_SEND);
				intent.putExtra(Intent.EXTRA_STREAM, imageUris.get(0));
			}else{
				//多张图片用ACTION_SEND_MUTIPLE
				intent.setAction(Intent.ACTION_SEND_MULTIPLE);
				intent.putParcelableArrayListExtra(Intent.EXTRA_STREAM,imageUris);
			}
		}
		
	return Intent.createChooser(intent, "提示分享的字符串");
}


这样可以最大化的分享我们的图文数据,至于其他应用是否能够读取,那就取决于该应用读取Intent的逻辑了.


当然 ,还可以使用 类似友盟的社会化分享sdk,但这就不在本文讨论范围内了.

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

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

余额充值