
第一名:
public static Bitmap getBitmapFromVIEw(VIEw vIEw) {Bitmap returnedBitmap = Bitmap.createBitmap(vIEw.getWIDth(),vIEw.getHeight(),Bitmap.Config.ARGB_8888);Canvas canvas = new Canvas(returnedBitmap);Drawable bgDrawable =vIEw.getBackground();if (bgDrawable!=null) bgDrawable.draw(canvas);else canvas.drawcolor(color.WHITE);vIEw.draw(canvas);return returnedBitmap;} 第二:
Bitmap vIEwCapture = null;theVIEwYouWantToCapture.setDrawingCacheEnabled(true);vIEwCapture = Bitmap.createBitmap(theVIEwYouWantToCapture.getDrawingCache());theVIEwYouWantToCapture.setDrawingCacheEnabled(false);
编辑
所以,我想我理解在第一个上发生了什么,我们基本上从它的原始画布中移除视图并将其绘制在与该位图相关联的其他地方.可以以某种方式我们存储原始画布,然后将视图设置为重绘在那里?
解决方法 对不起,我对此并不是很了解.但我使用以下代码:public Bitmap getBitmapFromVIEw(VIEw vIEw,int wIDth,int height) { Bitmap returnedBitmap = Bitmap.createBitmap(wIDth,height,Bitmap.Config.ARGB_8888); Canvas canvas = new Canvas(returnedBitmap); Drawable bgDrawable = vIEw.getBackground(); if (vIEw==mainPage.boardVIEw) { canvas.drawcolor(BoardVIEw.BOARD_BG_color); } else if (bgDrawable!=null) { bgDrawable.draw(canvas); } else { canvas.drawcolor(color.WHITE); } vIEw.measure(MeasureSpec.makeMeasureSpec(wIDth,MeasureSpec.EXACTLY),MeasureSpec.makeMeasureSpec(height,MeasureSpec.EXACTLY)); vIEw.layout(0,wIDth,height); vIEw.draw(canvas); return returnedBitmap;} 这与你的很相似我怀疑我们是从同一个地方复制和编辑的.
我从原始绘图树中消失的视图没有任何问题.对于VIEwGroup而不是普通视图调用mine.
总结以上是内存溢出为你收集整理的android – 从视图创建位图使视图消失,如何获取视图画布?全部内容,希望文章能够帮你解决android – 从视图创建位图使视图消失,如何获取视图画布?所遇到的程序开发问题。
如果觉得内存溢出网站内容还不错,欢迎将内存溢出网站推荐给程序员好友。
欢迎分享,转载请注明来源:内存溢出
微信扫一扫
支付宝扫一扫
评论列表(0条)