前言
在做項目的過程中需要實現(xiàn)文字和圖片的分享癣猾,有兩種方式:
- 使用android sdk中自帶的Intent.ACTION_SEND實現(xiàn)分享青灼。
- 使用shareSDK暂吉、友盟等第三方的服務(wù)竣付。
鑒于使用的方便,此次只介紹使用Android sdk中自帶的方式來實現(xiàn)分享的功能竭钝。
分享文字
/**
* 分享文字內(nèi)容
*
* @param dlgTitle
* 分享對話框標題
* @param subject
* 主題
* @param content
* 分享內(nèi)容(文字)
*/
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);
// 設(shè)置彈出框標題
if (dlgTitle != null && !"".equals(dlgTitle)) { // 自定義標題
startActivity(Intent.createChooser(intent, dlgTitle));
} else { // 系統(tǒng)默認標題
startActivity(intent);
}
}
分享單張圖片
/**
* 分享圖片和文字內(nèi)容
*
* @param dlgTitle
* 分享對話框標題
* @param subject
* 主題
* @param content
* 分享內(nèi)容(文字)
* @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);
}
// 設(shè)置彈出框標題
if (dlgTitle != null && !"".equals(dlgTitle)) { // 自定義標題
startActivity(Intent.createChooser(intent, dlgTitle));
} else { // 系統(tǒng)默認標題
startActivity(intent);
}
}
分享多張圖片
//分享多張圖片
public void shareMultipleImage(View view) {
ArrayList<Uri> uriList = new ArrayList<>();
String path = Environment.getExternalStorageDirectory() + File.separator;
uriList.add(Uri.fromFile(new File(path+"australia_1.jpg")));
uriList.add(Uri.fromFile(new File(path+"australia_2.jpg")));
uriList.add(Uri.fromFile(new File(path+"australia_3.jpg")));
Intent shareIntent = new Intent();
shareIntent.setAction(Intent.ACTION_SEND_MULTIPLE);
shareIntent.putParcelableArrayListExtra(Intent.EXTRA_STREAM, uriList);
shareIntent.setType("image/*");
startActivity(Intent.createChooser(shareIntent, "分享到"));
}