无需申请key直接调用微信/QQ/微博分享
支持单图,多图,文字,单图+文字,多图+文字
具体还需要看情况,自己试一下

package com.yaphetzhao.library_shareanywhere;import android.Manifest;import android.app.Activity;import android.content.ComponentName;import android.content.Intent;import android.content.pm.PackageManager;import android.graphics.Bitmap;import android.graphics.drawable.BitmapDrawable;import android.graphics.drawable.Drawable;import android.net.Uri;import android.os.Build;import android.provider.MediaStore;import android.view.View;import android.support.v4.app.ActivityCompat;import android.support.v4.content.ContextCompat;import java.util.ArrayList;import java.util.Collections;/** * Created by yaphet * on 2018/3/21. */public class ShareAnyWhereUtil {    /**     * bitmapToUri     *     * @param context     * @param bitmap     * @return     */    public static Uri bitmapToUri(Activity context, Bitmap bitmap) {        if (!checkPermission(context)) {            return null;        }        return Uri.parse(MediaStore.Images.Media.insertImage(context.getContentResolver(), bitmap, null, null));    }    /**     * drawableToUri     *     * @param context     * @param drawable     * @return     */    public static Uri drawableToUri(Activity context, Drawable drawable) {        if (!checkPermission(context)) {            return null;        }        return Uri.parse(MediaStore.Images.Media.insertImage(context.getContentResolver(), ((BitmapDrawable) drawable).getBitmap(), null, null));    }    /**     * viewToUri     *     * @param context     * @param view     * @return     */    public static Uri viewToUri(Activity context, View view) {        if (!checkPermission(context)) {            return null;        }        view.buildDrawingCache();        return Uri.parse(MediaStore.Images.Media.insertImage(context.getContentResolver(), view.getDrawingCache(), null, null));    }    /**     * createUriList     *     * @param uris     * @return     */    public static ArrayList createUriList(Uri... uris) {        ArrayList result = new ArrayList<>();        Collections.addAll(result, uris);        return result;    }    /**     * 分享到Weichat     *     * @param context     * @param uris     * @param desc     */    public static void shareWeichat(Activity context, ArrayList uris, String desc) {        if (!checkPermission(context)) {            return;        }        Intent intent = new Intent();        ComponentName comp = new ComponentName("com.tencent.mm", "com.tencent.mm.ui.tools.ShareImgUI");        intent.setComponent(comp);        intent.setAction(Intent.ACTION_SEND_MULTIPLE);        intent.setFlags(Intent.FLAG_ACTIVITY_NEW_TASK);        intent.setAction(Intent.ACTION_SEND_MULTIPLE);        intent.setType("image/*");        intent.putParcelableArrayListExtra(Intent.EXTRA_STREAM, uris);        intent.putExtra("Kdescription", desc);        context.startActivity(intent);    }    /**     * 分享到新浪微博     *     * @param context     * @param uris     * @param desc     */    public static void shareWeibo(Activity context, ArrayList uris, String desc) {        if (!checkPermission(context)) {            return;        }        Intent intent = new Intent();        intent.setPackage("com.sina.weibo");        intent.setAction(Intent.ACTION_SEND_MULTIPLE);        intent.setFlags(Intent.FLAG_ACTIVITY_NEW_TASK);        intent.setAction(Intent.ACTION_SEND_MULTIPLE);        intent.setType("image/*");        intent.putParcelableArrayListExtra(Intent.EXTRA_STREAM, uris);        intent.putExtra("Kdescription", desc);        context.startActivity(intent);    }    /**     * 分享到QQ     *     * @param context     * @param uris     * @param desc     */    public static void shareQQ(Activity context, ArrayList uris, String desc) {        if (!checkPermission(context)) {            return;        }        Intent intent = new Intent();        ComponentName comp = new ComponentName("com.tencent.mobileqq", "com.tencent.mobileqq.activity.JumpActivity");        intent.setComponent(comp);        intent.setAction(Intent.ACTION_SEND_MULTIPLE);        intent.setFlags(Intent.FLAG_ACTIVITY_NEW_TASK);        intent.setAction(Intent.ACTION_SEND_MULTIPLE);        intent.setType("image/*");        intent.putParcelableArrayListExtra(Intent.EXTRA_STREAM, uris);        intent.putExtra("Kdescription", desc);        context.startActivity(intent);    }    /**     * 权限检查     *     * @param context     * @return     */    private static boolean checkPermission(Activity context) {        if (ContextCompat.checkSelfPermission(context, Manifest.permission.WRITE_EXTERNAL_STORAGE) != PackageManager.PERMISSION_GRANTED ||                ContextCompat.checkSelfPermission(context, Manifest.permission.READ_EXTERNAL_STORAGE) != PackageManager.PERMISSION_GRANTED) {            if (Build.VERSION.SDK_INT >= Build.VERSION_CODES.M) {                String[] mPermissionList = new String[]{                        Manifest.permission.WRITE_EXTERNAL_STORAGE,                        Manifest.permission.READ_EXTERNAL_STORAGE};                ActivityCompat.requestPermissions(context, mPermissionList, 1);                return false;            }        }        return true;    }}

更多相关文章

  1. android 自定义 radiobutton 文字颜色随选中状态而改变
  2. Android(安卓)Snippet
  3. [转]新浪微博AppKey大集合
  4. Android中限制EditText(输入框)文字输入长度
  5. Android(安卓)WebRTC开发环境设置
  6. 曾经的笔记——android的学习笔记(布局和电话、短信权限)
  7. Android(安卓)向用户申请权限-适配的PermissionsDispatcher简单
  8. android中string.xml文件的使用
  9. Android(安卓)获取当前系统输入法和修改系统输入法

随机推荐

  1. Android(java)学习笔记135:Android中assets
  2. android中延迟执行某个任务
  3. 记录一下八款开源 Android(安卓)游戏引擎
  4. Android(安卓)之 Project Butter 详细介
  5. Android多媒体学习一:Android中Image的简
  6. Android开发环境的搭建
  7. android手机通过串口蓝牙透传模块与AVR单
  8. Android防止内存溢出浅析
  9. android init进程说明
  10. android 桌面程序 滑动抽屉 SlidingDraw,