android利用Intent.ACTION_SEND实现简单分享功能
16lz
2021-01-23
android中,利用Intent.ACTION_SEND可以实现简单“分享”功能,可以分享文字、图片等到其他应用,像微信、QQ、短信等。
MainActivity.java文件:
package com.example.androidtest;import java.io.File;import android.net.Uri;import android.os.Bundle;import android.os.Environment;import android.app.Activity;import android.content.Intent;import android.view.Menu;public class MainActivity extends Activity {@Overrideprotected void onCreate(Bundle savedInstanceState) {super.onCreate(savedInstanceState);setContentView(R.layout.activity_main);String strDlgTitle = "对话框标题 - 分享文字";String strSubject = "我的主题";String strContent = "我的分享内容";/** * 1.分享纯文字内容 *///shareText(strDlgTitle, strSubject, strContent);/** * 2.分享图片和文字内容 */strDlgTitle = "对话框标题 - 分享图片";// 图片文件路径(SD卡根目录下“1.png”图片)String imgPath = Environment.getExternalStorageDirectory().getPath()+ File.separator + "1.png";// 图片URIUri imageUri = Uri.fromFile(new File(imgPath));// 分享shareImg(strDlgTitle, strSubject, strContent, imageUri);}/** * 分享文字内容 * * @param dlgTitle * 分享对话框标题 * @param subject * 主题 * @param content * 分享内容(文字) */private void shareText(String dlgTitle, String subject, String content) {if (content == null || "".equals(content)) {return;}Intent intent = new Intent(Intent.ACTION_SEND);intent.setType("text/plain");if (subject != null && !"".equals(subject)) {intent.putExtra(Intent.EXTRA_SUBJECT, subject);}intent.putExtra(Intent.EXTRA_TEXT, content);// 设置弹出框标题if (dlgTitle != null && !"".equals(dlgTitle)) { // 自定义标题startActivity(Intent.createChooser(intent, dlgTitle));} else { // 系统默认标题startActivity(intent);}}/** * 分享图片和文字内容 * * @param dlgTitle * 分享对话框标题 * @param subject * 主题 * @param content * 分享内容(文字) * @param uri * 图片资源URI */private void shareImg(String dlgTitle, String subject, String content,Uri uri) {if (uri == null) {return;}Intent intent = new Intent(Intent.ACTION_SEND);intent.setType("image/*");intent.putExtra(Intent.EXTRA_STREAM, uri);if (subject != null && !"".equals(subject)) {intent.putExtra(Intent.EXTRA_SUBJECT, subject);}if (content != null && !"".equals(content)) {intent.putExtra(Intent.EXTRA_TEXT, content);}// 设置弹出框标题if (dlgTitle != null && !"".equals(dlgTitle)) { // 自定义标题startActivity(Intent.createChooser(intent, dlgTitle));} else { // 系统默认标题startActivity(intent);}}@Overridepublic boolean onCreateOptionsMenu(Menu menu) {// Inflate the menu; this adds items to the action bar if it is present.getMenuInflater().inflate(R.menu.activity_main, menu);return true;}}
其中,shareText方法实现了分享文本内容的功能,而shareImg方法实现了分享图片的功能。Intent.EXTRA_STREAM还可以分享其他类型的资源文件,比如:MP3。
运行效果如下所示:
1. 分享文字内容到微信
2. 分享文字内容到QQ
3. 分享图片到微信
4.分享图片到QQ
更多相关文章
- [Android] 压缩图片并保存
- Android 平铺背景图片
- android 设置 button 不同状态的图片
- Android 加载大图片是出现的 OutOfMemoryError问题
- 2011.08.18——— android 图片效果 ImageSwitcher+GestureDetec
- android 图片的浏览、缩放、拖动和自动居中示例
- android 电子签名 手写签名 功能实现
- Delphi xe7 up1 调用android振动功能
- android 实现音频分享功能