0
当我写这样的代码..Android的OpenGL的保存黑色图像
@Override
public void onDrawFrame(GL10 gl) {
/* codes */
saveBitmap(takeScreenshot(gl));
}
它的工作完美(采取截图并保存位图到SD卡)
当我想用按钮作为触发
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中的位图,并在点击按钮时将其保存。 –
我试过这个,它正在工作..我每次都无法捕获位图,因为我的程序多次使用onDrawFrame(),导致性能下降..(takeScreenshot嵌套for循环)..谢谢 – Huseyin
机会是'saveBitmap()'产生'glReadPixels()'调用,它需要一个当前的OpenGL上下文。所以你不能从渲染线程以外的线程调用它。例如在这里看到一个解释:http://stackoverflow.com/questions/30094705/glclearcolor-not-working-correct-android-opengl。这不是一个用例,而是一个基本问题。 –