【发布时间】:2016-10-08 19:56:49
【问题描述】:
当我写这样的代码时..
@Override
public void onDrawFrame(GL10 gl) {
/* codes */
saveBitmap(takeScreenshot(gl));
}
完美运行(截图并将位图保存到 sd 卡)
当我想使用 Button 作为触发器时
Button btn;
@Override
public void onCreate{
btn.setOnClickListener(new View.OnClickListener() {
@Override
public void onClick(View view) {
saveBitmap(takeScreenshot(currGL10));
}
});
}
@Override
public void onDrawFrame(GL10 gl) {
/* codes */
currGL10 = gl;
}
它保存了唯一的黑色图像..我无法理解像这样使用我失去了什么..谢谢
【问题讨论】:
-
解决方法:在 onDrawFrame` 中捕获
Bitmap,并在单击 Button 时保存。 -
我已经尝试过了,它正在工作..我无法每次都捕获位图,因为我的程序多次使用 onDrawFrame() 并导致性能下降..(takeScreenshot 嵌套了 for 循环).. 谢谢
-
saveBitmap()可能会进行glReadPixels()调用,这需要当前的 OpenGL 上下文。所以你不能从渲染线程以外的线程调用它。例如,请参阅此处以获取解释:stackoverflow.com/questions/30094705/…。这不是同一个用例,而是同一个基本问题。 -
非常感谢..我的外语不太好,所以我无法完全理解您在其他讨论中所写的内容,但这给了我灵感
标签: android bitmap opengl-es screenshot