美文网首页
android 把activity的view转换为bitmap

android 把activity的view转换为bitmap

作者: 笨笨哒2018 | 来源:发表于2018-08-07 10:06 被阅读0次
     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;
        }
    

    相关文章

      网友评论

          本文标题:android 把activity的view转换为bitmap

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