这个不太难,绘制本页布局为图片 这样的功能

1.截屏

这个对于我这个CV战士来说,一见面我就觉得不可取了,

①.截屏 如果有三方库的话 最好了,没有 只能调 手机自带的,然而自带就意味着权限

②.去除 状态栏,可裁剪

2.图片转换

BlankJ的 AndroidUtilCode 关于 图片的ImageUtils 这个工具类 提供了 view2bitmap  很显然  我们可以将其转换为bitmap.

/**

* View to bitmap.

*

* @param view The view.

* @return bitmap

*/

public static Bitmap view2Bitmap(final View view) {

if (view == null) return null;

Bitmap ret = Bitmap.createBitmap(view.getWidth(),

view.getHeight(),

Bitmap.Config.ARGB_8888);

Canvas canvas = new Canvas(ret);

Drawable bgDrawable = view.getBackground();

if (bgDrawable != null) {

bgDrawable.draw(canvas);

} else {

canvas.drawColor(Color.WHITE);

}

view.draw(canvas);

return ret;

}

在提供一个可以将bitmap作为图片 保存到本地相册的方法

public static void saveImageToGallery(Context context, Bitmap bmp) {

// 首先保存图片

File appDir = new File(Environment.getExternalStorageDirectory(), "Boohee");

if (!appDir.exists()) {

appDir.mkdir();

}

String fileName = System.currentTimeMillis() + ".jpg";

File file = new File(appDir, fileName);

try {

FileOutputStream fos = new FileOutputStream(file);

bmp.compress(Bitmap.CompressFormat.JPEG, 100, fos);

fos.flush();

fos.close();

} catch (FileNotFoundException e) {

e.printStackTrace();

} catch (IOException e) {

e.printStackTrace();

}

// 其次把文件插入到系统图库

try {

MediaStore.Images.Media.insertImage(context.getContentResolver(),

file.getAbsolutePath(), fileName, null);

} catch (FileNotFoundException e) {

e.printStackTrace();

}

// 最后通知图库更新

context.sendBroadcast(new Intent(Intent.ACTION_MEDIA_SCANNER_SCAN_FILE, Uri.parse(file.getAbsolutePath())));

}

这个是需要读写权限的

一般来说如果你要变成的图片的View 已经可见了  没超过屏幕

public Bitmap convertViewToBitmap(View view) {

view.setDrawingCacheEnabled(true);

view.buildDrawingCache();

Bitmap bitmap = view.getDrawingCache();

return bitmap;

}

private static Bitmap loadBitmapFromView(View v) {

int w = v.getWidth();

int h = v.getHeight();

Bitmap bmp = Bitmap.createBitmap(w, h, Bitmap.Config.ARGB_8888);

Canvas c = new Canvas(bmp);

/** 如果不设置canvas画布为白色,则生成透明 */

// c.drawColor(Color.WHITE);

v.layout(0, 0, w, h);

v.draw(c);

return bmp;

}

如果超出了屏幕 那么需要用ScrollView 包住 情况有很多我这里只写我成功的

/**

* 截取scrollview的屏幕

* @param scrollView

* @return

*/

public static Bitmap getBitmapByView(ScrollView scrollView) {

int h = 0;

Bitmap bitmap = null;

// 获取scrollview实际高度

for (int i = 0; i < scrollView.getChildCount(); i++) {

h += scrollView.getChildAt(i).getHeight();

scrollView.getChildAt(i).setBackgroundColor(

Color.parseColor("#ffffff"));

}

// 创建对应大小的bitmap

bitmap = Bitmap.createBitmap(scrollView.getWidth(), h,

Bitmap.Config.RGB_565);

final Canvas canvas = new Canvas(bitmap);

scrollView.draw(canvas);

return bitmap;

}

这里换成其他View 也可以的

https://www.jianshu.com/p/3d03c66cf169?tdsourcetag=s_pcqq_aiomsg

这里有一个可能 你想直接用bitmap 是不行的 至少大的不行 要先压缩

https://blog.csdn.net/FlyPig_Vip/article/details/88574367

android分享截屏到微信,Android 微信分享长图 ScrollView 生成长截图 View变bitmap相关推荐

  1. android中截屏功能实现,android代码实现截屏功能

    android开发中通过View的getDrawingCache方法可以达到截屏的目的,只是缺少状态栏! 原始界面 截屏得到的图片 代码实现 1. 添加权限(AndroidManifest.xml文件 ...

  2. Android WebView截屏空白或者一片黑如何解决?使用MediaProjection截图。

    直接上代码: 入口方法: startTakeScreenShot() 出口方法:返回的Bitmap对象在onActivityResult()  有todo的注释 注意:该截屏方式 在 build.gr ...

  3. android 后台截屏代码,Android实现截图和分享功能的代码

    先给大家展示下效果图吧 直接上代码: xml的布局: android:id="@+id/btn_jp" android:layout_marginTop="10dip&q ...

  4. Android实现截屏和截长图功能的几种方法

    一般情况下各种型号的手机都会有自带的截屏功能,也会有诸如"开关机键+音量键"的截屏快捷键,只要手机是亮屏状态,都会将手机屏幕的可视区域(包含状态栏)全部截取下来. 如果开发中想要调 ...

  5. Android系统截屏的实现(附代码)

    1.背景 写博客快两年了,写了100+的文章,最火的文章也是大家最关注的就是如何实现android系统截屏.其实我们google android_screen_shot就会找到很对办法,但那些都是很多 ...

  6. android 截长图 方法,Android实现截屏与截长图功能

    本文实例为大家分享了Android实现截屏与截长图功能展示的具体代码,供大家参考,具体内容如下 Demo在GitHub的地址:ScreenShoot 在Android开发中,有时候会遇到需要截屏分享到 ...

  7. 索尼android 怎么截屏快捷键,索尼XZ Premium怎么截屏 2种索尼XZ Premium截图方法

    截屏作为手机常用功能之一,我们经常在分享朋友圈或微博的时候经常需要用到屏幕截屏.今天本文主要分享一下索尼XZ Premium怎么截屏,作为一款相对冷门的非国产骁龙835旗舰机,在使用中难免出现一些不太 ...

  8. Android 系统截屏实现

    在AndroidManifest.xml文件里面填入以下权限 <!--系统截屏权限--> <uses-permission android:name="android.pe ...

  9. Android实现截屏方式

    本文介绍了Android 实现截屏方式整理,分享给大家.希望对大家有帮助 可能的需求: 截自己的屏 截所有的屏 带导航栏截屏 不带导航栏截屏 截屏并编辑选取一部分 自动截取某个空间或者布局 截取长图 ...

最新文章

  1. ADAS感知算法观察
  2. 笔记-软考高项-错题笔记汇总1
  3. 运行Gazebo出现cmd /opt/ros/melodic/lib/gazebo_ros/gzserver类似错误
  4. java project 连接hibernate 出错
  5. jQuery Post
  6. 复变函数在计算机科学的应用,[2018年最新整理]MATLAB在复变函数与积分变换的应用.doc...
  7. Kubernetes 外部 IP Service 类型
  8. 李开复:如何设计你的年度计划
  9. Markdown语法大全
  10. DELL灵越笔记本插上耳机后,只有外放耳机无声音的解决方法。
  11. PL2303在ARM Linux下驱动的问题及解决方法
  12. 【OpenGL基础】|| OpenGL渲染过程介绍
  13. @Transactional失效情况
  14. 正则表达式校验身份证号带出出生日期,年龄,性别
  15. “联想笔记本电脑的电池显示0%,充不进电” 解决方案
  16. c# MVC API 获取访问者IP 并加以验证
  17. Nginx 负载均衡 ip_hash和一致性hash
  18. group by 用法
  19. 深度式睡眠潜入虚拟世界_潜入swiftui的惊人世界
  20. 关于域名备案的注意事项

热门文章

  1. Maven_Maven简介
  2. 怎么做国外问卷调查站点查
  3. CF498D Traffic Jams in the Land
  4. python urllib之parse中urlencode、quote、unquote使用方法
  5. 很多人觉得做地推很没有面子
  6. Python--详解脚本语言|编译语言|胶水语言的区别
  7. 写了个自动批改小孩作业的代码
  8. CaffeNet简介
  9. selenium设置chrome代理
  10. 我厌倦玩计算机游戏了英语翻译,我喜欢玩电子游戏英文翻译,我喜欢电脑游戏怎么说...