나는 SurfaceView를 사용하려고 애쓰는 이상한 문제에 봉착했다. this one처럼 작동하지만 2 프레임 * 사이에서 계속 깜박입니다. 또한 unlockCanvasAndPost는 30-50M 정도 걸립니다. 정상입니까?Android - SurfaceView. 화면을 지우지 않고 업데이트 중입니다. (참고 : 나는 멍청이이다.)
매번 모든 것을 다시 그려 보는 것은 좋지 않습니다. 모든 프레임마다 350 도트를 다시 그려야한다고 생각하지 않습니다.
* 두 프레임 사이의 깜박임 : (X, X)에서 모든 프레임에 점을 그립니다. X는 프레임 번호입니다. 모든 장애 프레임을 보여주는 점 1,1,3,3,5,5,7,7,9,9와 모든 쌍 프레임을 나타내는 점 2,2,4,4,6,6,8,8가 보입니다.
Canvas C;
while(running)
{
synchronized (mSurfaceHolder)
{
DoCalc(); //Doesn't do anything special. changes vars X1 and Y1
C=mSurfaceHolder.lockCanvas();
aDraw(C); // Only contains canvas.drawRect(X1-1, Y1-1, X1+1,Y1+1, P);
mSurfaceHolder.unlockCanvasAndPost(C); //Why does it take so long?
}
try {Thread.sleep(500);} //Temporary delay.
catch (InterruptedException e) {}
}
감사합니다. – Anon
지금 시간을내어 봤습니다. 놀라운, 감사합니다. 그것은 정말로 잘 작동합니다. – Anon
위대한 ... 속도에 관해서는, 보통 안드로이드 장치는 약 16Ms 초당 적어도 60 프레임을 할 수 있습니다. 에뮬레이터에서 실행하거나 페인트 P가 복잡하고 채우기의 비트 맵 텍스처 유형을 사용하지 않는 한, 코드가 sleep()을 제외하고는 느려야하는 이유를 볼 수 없습니다. – Lumis