2015-01-14 2 views
0

안녕하세요, 저는 캔버스와 비트 맵을 사용하여 안드로이드를위한 간단한 게임을 만들고 있습니다. 저는이 방법이 많은 divour resourses를 차지하고 있지만 implimetation을위한 최선의 방법을 찾을 수는 없습니다. 이것은 제가 가지고있는 코드입니다. (메모리, CPU가 잘못하거나 할 수있는 더 좋은 방법이 있는지이 단순히android canvas background image

public SurfaceV(Context context){ 
    super(context); 
    holder = getHolder(); 
    thread = new Thread(this); 
    thread.start(); 
} 

@Override 
public void run(){ 
    while(running){ 
     if(!holder.getSurface().isValid()){ 
      continue; 
     } 

     Canvas canvas = holder.lockCanvas(); 
     canvas.drawRGB(0, 0, 0); 

     Bitmap bitmap = BitmapFactory.decodeResource(getResources(), R.drawable.sky); 
     Bitmap scaledBitmap = Bitmap.createScaledBitmap(bitmap, canvas.getWidth(), canvas.getHeight(), true); 

     canvas.drawBitmap(scaledBitmap, 0, 0, null); 

     holder.unlockCanvasAndPost(canvas); 
    } 
} 

답변

0

decodeResources 및 createSCaledBitmap 통화가 많은 자원을 게임의 배경 이미지를 설정하는 경우까지 말해주십시오). 루프에서 한 번만 실행하면됩니다.

+0

많은 점에 감사드립니다.보기와 표면의 차이점을 알고 계시고 게임에 더 좋은 점이 있습니까? – user2692997