前言:

有时候我们会f需要看到微博,朋友圈,微信等带滑动页面的长截屏图片,即要分享一个界面的所有内容,可是内容太多,超过了屏幕的大小,简单的截屏已经满足不了案子的需要。下面代码实现对滑动页面包括超出屏幕显示区域的截屏。

代码如下:

public class ScreenShot {private static Bitmap getBitmapByView(ScrollView scrollView) {int h = 0;Bitmap bitmap = null;
        for (int i = 0; i < scrollView.getChildCount(); i++) {h += scrollView.getChildAt(i).getHeight();
        }
        bitmap = Bitmap.createBitmap(scrollView.getWidth(), h,Bitmap.Config.RGB_565);final Canvas canvas = new Canvas(bitmap);scrollView.draw(canvas);return bitmap;}
    private static Bitmap compressImage(Bitmap image) {ByteArrayOutputStream baos = new ByteArrayOutputStream();
        image.compress(Bitmap.CompressFormat.JPEG, 100, baos);int options = 100;// 循环判断如果压缩后图片是否大于100kb,大于继续压缩
        while (baos.toByteArray().length / 1024 > 100) {// 重置baos
            baos.reset();
            image.compress(Bitmap.CompressFormat.JPEG, options, baos);
            options -= 10;}
        ByteArrayInputStream isBm = new ByteArrayInputStream(baos.toByteArray());
        Bitmap bitmap = BitmapFactory.decodeStream(isBm, null, null);return bitmap;}// 保存到sdcard
    private static void savePic(Bitmap b, String strFileName) {FileOutputStream fos = null;try {fos = new FileOutputStream(strFileName);if (null != fos) {b.compress(Bitmap.CompressFormat.PNG, 90, fos);fos.flush();fos.close();}} catch (FileNotFoundException e) {e.printStackTrace();} catch (IOException e) {e.printStackTrace();}}// 程序入口
    public static void shoot(ScrollView a) {ScreenShot.savePic(compressImage(getBitmapByView(a)), "sdcard/shoot.png");}
}  

Activity 中调用:

final OnClickListener mOnClickListener = new OnClickListener() {

@Override
        public void onClick(View view) {
            // TODO Auto-generated method stub
            switch (view.getId()) {
            case R.id.accuweather_img:
               ScreenShot.shoot(settings_scrollview);
                break;

...

APP UI:

长截屏:

Android ScrollView 长截屏相关推荐

  1. android长截图工具下载,Android实现长截屏功能

    本文实例为大家分享了Android实现长截屏功能的具体代码,供大家参考,具体内容如下 1.MainActivity public class MainActivity extends AppCompa ...

  2. android实现长截屏,Android实现全屏截图或长截屏功能

    本文实例为大家分享了Android实现全屏截图或长截屏功能的具体代码,供大家参考,具体内容如下 全屏截图: /** * 传入的activity是要截屏的activity */ public stati ...

  3. android截全屏方法,Android实现全屏截图或长截屏功能

    本文实例为大家分享了Android实现全屏截图或长截屏功能的具体代码,供大家参考,具体内容如下 全屏截图: /** * 传入的activity是要截屏的activity */ public stati ...

  4. android长截屏代码,android长截屏原理及实现代码

    android长截屏原理及实现代码 发布时间:2020-08-31 06:55:16 来源:脚本之家 阅读:158 作者:Android笔记 小米系统自带的长截屏应该很多人都用过,效果不错.当长截屏时 ...

  5. android悬浮球截屏,ColorOS7的悬浮球截屏和长截屏怎么用,有哪些方式

    11月20日OPPO官方发布了这个全新的ColorOS 7系统了,在发布会上展现了很多惊艳的功能,但是对于操作便捷来说,我最喜欢的还是截屏方式的改变,变得花样更多了,相信这个截屏在大家使用手机的过程中 ...

  6. Android App内截屏监控及涂鸦功能实现

    Android App内截屏监控及涂鸦功能实现 Android截屏功能是一个常用的功能,可以方便的用来分享或者发送给好友,本文介绍了如何实现app内截屏监控功能,当发现用户在我们的app内进行了截屏操 ...

  7. 截屏的各种实现(全屏or长截屏)

    全屏截图: /** * 传入的activity是要截屏的activity */ public static Bitmap getViewBitmap(Activity activity) {// Vi ...

  8. iphone怎么长截屏_新iPhone又要为中国定制?除了价格,还有这些惊喜

    冷不丁的,一个莫名其妙的话题上了热搜. 苹果要推出中国定制版 iPhone? 点进去一看详情-- 说是苹果为了挽救 iPhone 在中国市场的惨淡销量,欲推出一款 5000 元价位的 iPhone. ...

  9. Android 4.0 截屏(Screenshot)代码流程小结

    Android 4.0 截屏 在Android 4.0 之前,Android手机上如果要使用截屏功能,只能通过Root手机,且使用第3方截图软件来实现截屏功能. Android4.0中,系统自带了截屏 ...

  10. iphone长截图哪个软件好_亲身体验过13款滚动截屏App,谁才是最好用的iPhone长截屏工具?...

    (☝聪明的人都会星标我☝) 上次我们分享了关于手机录屏怎么只录入手机系统声音而不录入外界声音,有小伙伴留言"苹果手机怎么长截屏?",必须安排一波! 与苹果手机相比,安卓手机想要长截 ...

最新文章

  1. 完全卸载oracle11g教程、Oracle11g的卸载方法和步骤
  2. python中二维列表的遍历方式(亲测)
  3. python socket recv超时_python使用多线程编写tcp客户端程序,你还没掌握吗?
  4. java 异常_23、Java异常分类
  5. 计算机操作系统的分类
  6. WebX RPC说明
  7. VB2010(1)_Hello User
  8. python爬虫气象数据_python爬虫入门,获取全国气象站24小时整点气象数据(二)...
  9. idea中字体由繁体变简体
  10. 机器人路径规划_人工蜂群算法
  11. 毕业设计 单片机智能药箱系统 - STM32
  12. 福施福、爱乐维、玛特纳各成分比较(已换算成同一单位)
  13. Tair 对 Redis 引擎架构之争的看法
  14. python的算法有哪些_python算法有哪些
  15. 设备安全——入侵检测IDS
  16. 小米上市,雷军或成中国首富?作为科技粉也许你该关注的是这些
  17. SpringCloud学习笔记(十) Bus 消息总线
  18. 世界上第一台子计算机名为,世界上第一台子计算机诞生于(.doc
  19. 物理学专业英语(词汇整理)--------02
  20. 三菱转以太网模块快速应用起步对产品的初步测试

热门文章

  1. tp801单板微型计算机英文全称,TP801型微型计算机在低压铸造与差压铸造液面加压控制系统中的应用.pdf...
  2. IBM-P55A小型机内存故障
  3. 卡耐基梅隆大学 计算机信息管理,CMU-喜报!G同学成功收到2017-Fall 卡耐基梅隆大学 计算机信息技术硕士AD一枚...
  4. Flixel横板游戏制作教程(十一)—JetPack(飞行背包)
  5. Unity编辑器拓展(GraphView制作对话系统编辑器)
  6. SecureCRT中文乱码-显示和复制和粘贴乱码解决办法
  7. 用于Red Hat Enterprise Linux 6 (AMD64/EM64T)的HP智能阵列B140i SATA RAID控制器驱动程序 下载该文件即表示您同意惠普软件许可协议的条款和条件。
  8. [安洵杯 2019]easy misc 1
  9. 买房税费大攻略!哪些费用必须交?
  10. 服务器虚拟化厂商有哪些,国内外厂商的桌面虚拟化产品