surfaceView를 이용해서 비트맵을 연속적으로 뿌려주고 있는데요 계속해서 깜빡임이 생깁니다. 어디가 문제일까요?
이전에 그렸던 비트맵을 유지하고 계속해서 새로운것을 그리려면 이전에 그렸던걸 저장을 해놔야 한다고 하는데요. 비트맵을 어레이 리스트에다가 넣어 놓고 불러오면 딜레이가 심하지 않을까요?? 사실 지금도 딜레이가 약간 있는데... 어떤게 좋을까요???
@Override
public void run() {
isRun = true;
while (isRun) {
mCanvas = getHolder().lockCanvas(null);
try {
synchronized (getHolder()) {
onDraws(mCanvas);
}
} finally {
getHolder().unlockCanvasAndPost(mCanvas);
}
}
}
public void onDraws(Canvas canvas){
Log.i("Position","onDraws");
if(mPath != null){
canvas.drawBitmap(mBitmap, 0, 0, mBitmapPaint);
calPath(canvas);
}
//canvas.drawPath(mPath, paint);
//canvas.drawBitmap(bm, 0, 0, mBitmapPaint);
}
public void calPath(Canvas canvas){
Log.i("Position","calPath");
mPathMeasure.setPath(mPath, false);
k = (int)this.mPathMeasure.getLength();
counts = 0;
while(true){
if(counts >= k){
break;
}
mPathMeasure.getPosTan(counts, arrayOfFloat1, null);
canvas.drawBitmap(MainActivity.bm, arrayOfFloat1[0],arrayOfFloat1[1], mBitmapPaint);
counts = counts + 14;
}
}