美文网首页
Android应用内截图分享的实现记录

Android应用内截图分享的实现记录

作者: alonsolee | 来源:发表于2016-10-15 19:56 被阅读0次

Android应用内截图分享的实现记录

近期的项目中有个需求,需要将某个表示用户身份的页面整个截取下来,分享到微信微博。网上也很多的解决方案,我也分享下我自己的爬坑记录。

需求分析

有个页面,用于展示用户获得的成就(主要是装逼)。产品狗狗肯定希望通过sns渠道,把这种装逼手段扩散出去形成口碑。要求很简单,就将这个页面整个截取下来保存成图片,用sns的sdk分享出去。这里就有两种情况:

  1. 页面可见的情况下截图分享;
  2. 页面不可见的情况下截图分享.
    第一种情况很容易解决,而第二种因为页面不可见,就有点蛋疼。
    当然,不可能因为两种情况就写两种截取方式。那么应该怎么实现呢?
实现方案

因为涉及到文件存储,那么必然,在保存的过程中肯定不应该放到主线程操作,不然就很容易阻塞UI。又因为涉及到Bitmap的生成,那么我们得考虑下内存使用的问题。整个流程应该是这样->:

  • 展示View

  • 将View转成Bitmap

  • 将Bitmap写入SD卡

  • 返回写入文件的路径

我们另起一个Activity,将其设为透明的主题样式,将要截取的View动态add到Activity之中(当然也可以写在Activity的布局文件中)并将其设为INVISIBLE状态,现在这个View就已经呈现在我们眼前,只是我们看不到而已。这个时候就可以开始截图啦。我将View转为Bitmap的方法也是网上找的


public static Bitmap convertViewToBitmap(View view) {

Bitmap bitmap = Bitmap.createBitmap(view.getWidth(), view.getHeight(),

Bitmap.Config.RGB_565);

//利用bitmap生成画布

Canvas canvas = new Canvas(bitmap);

//把view中的内容绘制在画布上

view.draw(canvas);

return bitmap;

}

将Bitmap写入SD卡的方法:


public static void saveMyBitmap(Bitmap bitmap, String path) {

File f = new File(path);

FileOutputStream fOut = null;

try {

fOut = new FileOutputStream(f);

} catch (FileNotFoundException e) {

e.printStackTrace();

return;

}

bitmap.compress(Bitmap.CompressFormat.PNG, 80, fOut);

try {

fOut.flush();

fOut.close();

} catch (IOException e) {

e.printStackTrace();

}

}

最后Activity调用setResult返回保存的文件地址并关闭Activity后,整个流程就结束了啵

到这里,我们要实现的目的已经达到了。有没有可以优化的地方?那肯定有!最直接的优化方案就是将这个Actvity放在独立进程操作,完成之后推出进程就OK了!

相关文章

  • Android应用内截图分享的实现记录

    Android应用内截图分享的实现记录 近期的项目中有个需求,需要将某个表示用户身份的页面整个截取下来,分享到微信...

  • 应用内截图

    闲着没事看了一下主流APP 对应用内截图的处理。用户对截图的处理 一般是分享或者是提交意见反馈。有一部分软件通过监...

  • android实现截图分享qq,微信

    前言 现在很多应用都有截图分享的功能,今天就来讲讲截图分享吧今天涉及到以下内容: Android截屏 Androi...

  • Android应用内切换语言

    一、前言: 最近接触到Android 应用内切换语言的问题,研究了两天,做个记录先。实现了中文,英文,泰语的切换。...

  • iOS应用内截图代码

    iOS应用内截图代码

  • Android实现分享和接收分享内容

    Android实现分享文本:(Intent): Android实现分享图片:(Intent): Android实现...

  • 应用内截屏

    记录项目中遇到的新鲜的未接触过的方法。 前几天遇到一个需要在分享图片(应用内截图)的需求,原先并不知道还可以用代码...

  • 《疯狂android讲义》——读书笔记(android应用内截图

    给自己制定了一个计划,今年要开发一款属于自己的android的app,开始从基础学起,翻看《疯狂android讲义...

  • Android 截图分享

    之前项目中有个需求是需要将个人名片的一个页面进行截图分享,特此将实现的截图功能点整理出来,方便有此需求的亲们参考使...

  • Android7.0系统新特性

    在android7.0上,我们需要在应用内实现更新apk并且安装包的时候,无法再像之前那样了。随着Android版...

网友评论

      本文标题:Android应用内截图分享的实现记录

      本文链接:https://www.haomeiwen.com/subject/ofkoyttx.html