Mob分享图片
用法:先保存到本地再进行分享
参见网址: http://wiki.mob.com/不同平台分享内容的详细说明/
//保存图片
String[] permissions = {Manifest.permission.WRITE_EXTERNAL_STORAGE,
Manifest.permission.READ_EXTERNAL_STORAGE};
requestPermissions(permissions, new PermissionsResultAction() {
@Override
public void onGranted() {
File file = bitmapToFile(bitmap);
if (file != null) {
AtyUtils.showLong(mActivity, "图片已保存至" + file.getPath() + "文件夹", false);
}
}
@Override
public void onDenied(String s) {
AtyUtils.showShort(mActivity, "请开启存储权限", false);
}
});
/**
* View转Bitmap
*
* @param view
* @return
*/
public Bitmap getViewBitmap(View view) {
if (view == null) return null;
Bitmap shareBitmap = Bitmap.createBitmap(view.getMeasuredWidth(),
view.getMeasuredHeight(),
Bitmap.Config.ARGB_8888);
Canvas c = new Canvas(shareBitmap);
view.draw(c);
return shareBitmap;
}
/**
* bitmap转file
*
* @param bitmap
* @return
*/
protected File bitmapToFile(Bitmap bitmap) {
File file = null;
file = new File(Environment.getExternalStorageDirectory().getAbsolutePath()//
+ File.separator + "DCIM/Camera",
System.currentTimeMillis() + ".jpeg");
file.getParentFile().mkdirs();
BufferedOutputStream bos = null;
try {
bos = new BufferedOutputStream(new FileOutputStream(file));
bitmap.compress(Bitmap.CompressFormat.JPEG, 100, bos);
bos.flush();
bos.close();
} catch (FileNotFoundException e) {
e.printStackTrace();
} catch (IOException e) {
e.printStackTrace();
} finally {
try {
if (bos != null) {
bos.flush();
bos.close();
}
} catch (IOException e) {
e.printStackTrace();
}
if (file != null) {
AtyUtils.scanFile(mActivity, file.getAbsolutePath());
}
}
return file;
}
//删除文件夹和文件夹里面的文件
public static void deleteDir(String pPath) {
File dir = new File(pPath);
deleteDirWihtFile(dir);
}
public static void deleteDirWihtFile(File dir) {
if (dir == null || !dir.exists() || !dir.isDirectory())
return;
for (File file : dir.listFiles()) {
if (file.isFile())
file.delete(); // 删除所有文件
else if (file.isDirectory())
deleteDirWihtFile(file); // 递规的方式删除文件夹
}
dir.delete();// 删除目录本身
}
//观察UI是否加载完成
ViewTreeObserver viewTreeObserver = rl_share_img.getViewTreeObserver();
viewTreeObserver.addOnGlobalLayoutListener(new ViewTreeObserver.OnGlobalLayoutListener() {
@Override
public void onGlobalLayout() {
}
});