Android实现分享图片和文字的功能

为了应用的推广,我们经常看到点击分享按钮会出现,比如微博微信等应用的分享二等列表,这是如何实现的呢?这一篇将要详细的介绍。
android的实现分享是通过隐式的启动activity。

分享文本

1.action是action_send,相应的代码:

Intent sendIntent = new Intent();  
sendIntent.setAction(Intent.ACTION_SEND);  
sendIntent.putExtra(Intent.EXTRA_TEXT, "hello world");  
sendIntent.setType("text/plain");  
startActivity(sendIntent);  

2.改变分享的列表标题,通过Intent.createChooser()实现的。代码如下:

Intent sendIntent = new Intent();  
sendIntent.setAction(Intent.ACTION_SEND);  
sendIntent.putExtra(Intent.EXTRA_TEXT, "hello wrold");  
sendIntent.setType("text/plain");  
startActivity(Intent.createChooser(sendIntent, getResources().getText(R.string.send_to)));  

使用Intent.createChooser()的好处

1.首先可以改变分享列表的标题。
2.会把所有的应用列出类,即使你之前选择了默认的应用。

分享图片

1.代码如下:

Intent shareIntent = new Intent();  
shareIntent.setAction(Intent.ACTION_SEND);  
shareIntent.putExtra(Intent.EXTRA_STREAM, Uri.fromFile(file1));  
shareIntent.setType("image/jpeg");  
startActivity(Intent.createChooser(shareIntent, getResources().getText(R.string.send_to)));  

2.分享图片列表

ArrayList<Uri> imageUris = new ArrayList<Uri>();  
imageUris.add(imageUri1); // Add your image URIs here  
imageUris.add(imageUri2);  

Intent shareIntent = new Intent();  
shareIntent.setAction(Intent.ACTION_SEND_MULTIPLE);  
shareIntent.putParcelableArrayListExtra(Intent.EXTRA_STREAM, imageUris);  
shareIntent.setType("image/*");  
startActivity(Intent.createChooser(shareIntent, "Share images to.."));  

如何让我们的应用出现在列表里面

通过声明Intent-filter

<activity  
           android:name="com.example.sharedemo.ShareActivity"  
           android:label="@string/app_name" >  
           <intent-filter>  
               <action android:name="android.intent.action.SEND" />  

               <category android:name="android.intent.category.DEFAULT" />  

               <data android:mimeType="image/*" />  
           </intent-filter>  
           <intent-filter>  
               <action android:name="android.intent.action.SEND" />  

               <category android:name="android.intent.category.DEFAULT" />  

               <data android:mimeType="text/plain" />  
           </intent-filter>  
           <intent-filter>  
               <action android:name="android.intent.action.SEND_MULTIPLE" />  

               <category android:name="android.intent.category.DEFAULT" />  

               <data android:mimeType="image/*" />  
           </intent-filter>  
       </activity>  
  • 0
    点赞
  • 2
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值