android 把activity的view转换为bitmap

 public Bitmap getActivityBitmap(Activity activity) {
// 获取windows中最顶层的view
        View view = activity.getWindow().getDecorView();
        view.buildDrawingCache();
// 获取状态栏高度
        Rect rect = new Rect();
        view.getWindowVisibleDisplayFrame(rect);
        int statusBarHeights = rect.top;
        Display display = activity.getWindowManager().getDefaultDisplay();
// 获取屏幕宽和高
        int widths = display.getWidth();
        int heights = display.getHeight();
// 允许当前窗口保存缓存信息
        view.setDrawingCacheEnabled(true);
// 去掉状态栏
        Bitmap bmp = Bitmap.createBitmap(view.getDrawingCache(), 0,
                statusBarHeights, widths, heights - statusBarHeights);
// 销毁缓存信息
        view.destroyDrawingCache();
        return bmp;
    }


 public Bitmap getViewBitmap(View  view) {
        view.setDrawingCacheEnabled(true);
        view.buildDrawingCache();  //启用DrawingCache并创建位图
        Bitmap bitmap = Bitmap.createBitmap(view.getDrawingCache()); //创建一个DrawingCache的拷贝,因为DrawingCache得到的位图在禁用后会被回收
        view.setDrawingCacheEnabled(false);  //禁用DrawingCahce否则会影响性能

        return bitmap;
    }

推荐阅读更多精彩内容

  • 世间万物,造物主赐予了它们生命,同样赋予着它们的使命。什么是使命?也许让大自然的动物来演绎、释义这个词语,更精确,...
    七月风阅读 115评论 0 3
  • 在匆忙的生活,理财总是一个常被忽略却让人隐隐作痛的话题。大多数人不是没有理财意识,更多的是懒癌症发作,总是找很多理...
    可爱财阅读 76评论 0 0
  • 这是一条小巷,人却很多,也很吵。 一间一间的小店,里头全是令人眼花缭乱的服装。年轻少女的黄颜色连衣裙,时尚达人的紫...
    陌九阅读 158评论 4 7
  • 2017谷歌IO大会,官方支持Kotlin,为了不落后,还是先学习一下吧 环境安装 1.Android Studi...
    Happy668阅读 73评论 0 0
  • 今天准备好了字卡, 把字卡贴在扑克牌上,本来想给宝宝玩的,但是突发了一些事情 没有完成,但是宝宝还是认出了 门, ...
    佳茗妈阅读 39评论 0 0