2011-10-20 3 views
0

mImage가 표시되지 않습니까?그리기 가능하지 않음

public class Manager extends Thread{ 
    private SurfaceHolder mSurfaceHolder; 
    private boolean mRunning; 



public Drawable mImage; 
public Manager(SurfaceHolder surfaceHolder, Context context){ 

    mSurfaceHolder = surfaceHolder; 
    mRunning = false; 

    Resources res = context.getResources(); 


     mImage = res.getDrawable(R.drawable.nhero2); 


    public void setRunning(boolean running) 
    { 
     mRunning = running; 
    } 

    public void run() 
    { 
     while (mRunning) 
     { 
      Canvas canvas = null; 
      try 
      { 
       // подготовка Canvas-а 
       canvas = mSurfaceHolder.lockCanvas(); 
       synchronized (mSurfaceHolder) 
       { 
        // собственно рисование 
        //doDraw(canvas); 
        mImage.draw(canvas); 
       } 
      } 
      catch (Exception e) { } 
      finally 
      { 
       if (canvas != null) 
       { 
        mSurfaceHolder.unlockCanvasAndPost(canvas); 
       } 
      } 
     } 
    } 
} 

P. 미안 4 내 영어

P.P.S. 내가 http://pastebin.com/A5u5UJea

+0

답을 확인하십시오. http://stackoverflow.com/questions/7740687/add-image-to-surface-view-in-android –

+0

Lalit Poptani, 도와 주셔서 감사합니다! – MarkMark

답변

1

mImage.setBounds (...);를 호출해야합니다. 그렇지 않으면 캔버스는 Drawable을 그릴 위치를 알지 못합니다.

+0

감사합니다. 그것은 작동합니다 :) – MarkMark

0

나는 당신이 가지고있는 가장 큰 문제는 당신이 시작하자마자 것을 생각 HAH 전체 여기에 코드 (나쁜 의견 SRY) 클래스 관리자 http://pastebin.com/Sjd57uqT 클래스보기 및 클래스 scrolBckgr을 내 자신의 scrool 슈팅 게임을 만들려고 스레드가 .start();이면 부울 mRunning이 거짓이며 스레드가 즉시 완료됩니다. 스레드가 시작된 후에 .setRunning(true);에 호출하려고하면 스레드가 이미 완료되었으므로 아무런 효과가 없습니다.

+0

들으,하지만 난 그렇게 생각하지 않아요 - 나는 해설은 내가'mRunning을 설정 tryed – MarkMark

+0

을 노래 repacle 경우 실제로'doDraw은()'작품이다 = 진정한;'너무 생성자하지만 아무것도 변경했다 – MarkMark

+0

좋아, 잘 스레딩은 항상 어렵다 드로잉. http://developer.android.com/reference/android/view/View.html#invalidate() 메소드를 호출하고이 블로그 게시물 (http://android-developers.blogspot.com)을 읽으려고 시도 할 수 있습니다. /2009/05/painless-threading.html –

관련 문제