前往小程序,Get更优阅读体验!
立即前往
首页
学习
活动
专区
工具
TVP
发布
社区首页 >专栏 >获取View的截图-将View转换为Bitmap对象

获取View的截图-将View转换为Bitmap对象

作者头像
用户1155943
发布2018-01-04 15:24:37
1.8K0
发布2018-01-04 15:24:37
举报
文章被收录于专栏:Android点滴积累Android点滴积累

开发中,有时候需要获取View的截图来做动画来达到动画流程的目的

原理:将View的内容画到一个Bitmap画布上,然后取出

下面封装了一个从View生成Bitmap的工具类

代码语言:javascript
复制
/**
 * 将View转换为Bitmap对象
 */
public class ViewToBitmapUtil {

    private static final String TAG = "ViewToBitmapUtil";

    public static Bitmap convertViewToBitmap(View view) {
        view.measure(MeasureSpec.makeMeasureSpec(0, MeasureSpec.UNSPECIFIED),             MeasureSpec.makeMeasureSpec(0, MeasureSpec.UNSPECIFIED));
        view.layout(0, 0, view.getMeasuredWidth(), view.getMeasuredHeight());
        view.buildDrawingCache();
        Bitmap bitmap = view.getDrawingCache();     // 或者可以使用下面的方法     // view.setDrawingCacheEnabled(true);     // Bitmap bmp = Bitmap.createBitmap(view.getDrawingCache());
代码语言:javascript
复制
     return bitmap;
    }

    public static Bitmap convertViewToBitmap(View view, int bitmapWidth, int bitmapHeight) {
        Bitmap bitmap = Bitmap.createBitmap(bitmapWidth, bitmapHeight, Bitmap.Config.ARGB_8888);
        view.draw(new Canvas(bitmap));
        return bitmap;
    }

    public static void getScreenRectOfView(View view, Rect outRect) {
        int pos[] = new int[2];
        view.getLocationOnScreen(pos);
        outRect.set(pos[0], pos[1], pos[0] + view.getWidth(), pos[1] + view.getHeight());
    }}
本文参与 腾讯云自媒体分享计划,分享自作者个人站点/博客。
原始发表:2016-03-23 ,如有侵权请联系 cloudcommunity@tencent.com 删除

本文分享自 作者个人站点/博客 前往查看

如有侵权,请联系 cloudcommunity@tencent.com 删除。

本文参与 腾讯云自媒体分享计划  ,欢迎热爱写作的你一起参与!

评论
登录后参与评论
0 条评论
热度
最新
推荐阅读
相关产品与服务
图像处理
图像处理基于腾讯云深度学习等人工智能技术,提供综合性的图像优化处理服务,包括图像质量评估、图像清晰度增强、图像智能裁剪等。
领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档