最近在写一个小程序长微博工具,效果就是编辑长微博,然后一键分享到微信、QQ和新浪微博。
一开始是想直接用Intent.createChooser(target, title)来做,后来一想,这样做不是很好啊,会有许多乱七八糟的应用弹出来,我想优先分享到微信、QQ和微博,于是找了点资料,将一键分享这个部分做成了一个开源的工具。我把这个工具叫 SharePanel。其中用来显示的部分我用了我前段时间写的一个开源的控件ExpandDialog。你可一看我以前的一篇博客
以下是部分代码块:
/** * 判断是否安装腾讯、新浪等指定的分享应用 * @param context 上下文 * @param packageName 应用的包名 * @return 安装了则返回true,没安装返回false; */ public static boolean checkInstallation(Context context , String packageName) { boolean isInstall = false; try { context.getPackageManager().getPackageInfo(packageName, PackageManager.GET_ACTIVITIES); isInstall = true; } catch (NameNotFoundException e) { e.printStackTrace(); } catch (Exception e) { e.printStackTrace(); } return isInstall; }
/** * 通过ComponentName过滤,得到指定的Activity,用此ACtivity来分享图片 * @param activity 指定的Activity * @param imageUri 图片的Uri * @return */ public static Intent getImageShareIntent( ComponentName activity , Uri imageUri ) { Intent shareIntent = new Intent(Intent.ACTION_SEND); shareIntent.addCategory(Intent.CATEGORY_DEFAULT); shareIntent.setComponent(activity); shareIntent.setType("image/*"); shareIntent.putExtra(Intent.EXTRA_STREAM, imageUri); return shareIntent; }
/** * 通过ComponentName过滤,得到指定的Activity,用此ACtivity来分享文字 * @param activity 指定的Activity * @param msg 图片的Uri * @return */ public static Intent getTextShareIntent( ComponentName activity , String msg ) { Intent shareIntent = new Intent(Intent.ACTION_SEND); shareIntent.addCategory(Intent.CATEGORY_DEFAULT); shareIntent.setComponent(activity); shareIntent.setType("text/plain"); shareIntent.putExtra(Intent.EXTRA_TEXT, msg); return shareIntent; }
$(function () {
$(‘pre.prettyprint code‘).each(function () {
var lines = $(this).text().split(‘\n‘).length;
var $numbering = $(‘