来自View的位图未在Android上显示

dMa*_*euD 4 layout android bitmap

我试图从一个尚未显示的视图创建一个位图,将其设置为Android中的OpenGL纹理.问题是,当我创建我的位图时,我的View的布局参数有0值,因为尚未调用onLayout()函数.有没有办法"模拟"布局或做一个"背景布局"来获得正确的布局参数?我正在考虑具有两个视图的Frame布局,背景一个用于创建我的位图,因为布局已经完成.

谢谢.

Rom*_*Guy 19

确实需要在将视图绘制到位图之前对其进行布局.只需致电 myView.measure(...);

然后

myView.layout(0, 0, myView.getMeasuredWidth(), myView.getMeasuredHeight());

我在以下某个演示文稿中发布了一个如何执行此操作的示例:http://www.curious-creature.org/2010/12/02/android-graphics-animations-and-tips-tricks/

  • 谢谢Romain我尝试了你的解决方案.它运作良好.我在这里发帖给那些不想解析演示文稿的人(其中包含非常有用的信息): (3认同)
  • int spec = MeasureSpec.makeMeasureSpec(0,MeasureSpec.UNDEFINED); view.measure(spec,spec); view.layout(0,0,view.getMeasuredWidth(),view.getMeasuredHeight()); 位图b = Bitmap.createBitmap(view.getWidth(),view.getHeight(),Bitmap.Config.ARGB_8888); 画布c =新画布(b); c.translate(-view.getScrollX(), - view.getScrollY()); view.draw(C); (3认同)