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>  
<script type="text/javascript"> $(function () { $('pre.prettyprint code').each(function () { var lines = $(this).text().split('\n').length; var $numbering = $('<ul/>').addClass('pre-numbering').hide(); $(this).addClass('has-numbering').parent().append($numbering); for (i = 1; i <= lines; i++) { $numbering.append($('<li/>').text(i)); }; $numbering.fadeIn(1700); }); }); </script>
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值