2011-08-04 59 views
0

我有一些位圖,我想連續顯示一個接一個,但我的代碼只顯示最後一個位圖。可以有人告訴我爲什麼會發生? 這裏是代碼在畫布上顯示位圖問題

類板延伸SurfaceView實現SurfaceHolder.Callback {

private boolean _run = false; 

    public Panel(Context context) { 

     super(context); 

     getHolder().addCallback(this); 

     _run = true; 

    } 

    @Override 
    public void onDraw(Canvas canvas) { 



    } 

    @Override 
    public void surfaceChanged(SurfaceHolder holder, int format, int width, int height) { 

     Log.i("Read","surfaceChanged is called"); 
    } 

    @Override 
    public void surfaceCreated(SurfaceHolder holder) { 

     Log.i("Read","surfaceCreated is called"); 

     while (_run) { 

      display(); 
     } 


    } 

    public void display() { 

     Canvas c; 

     c = null; 

     try { 

      c = getHolder().lockCanvas(null); 

      synchronized (getHolder()) { 

       onPreviewFrame(); 

       invalidate(); 

       c.drawColor(Color.BLACK); 

       c.drawBitmap(bmp, 10, 10, null); 

       //panel.surfaceDestroyed(panel.getHolder()); 
      } 

     } finally { 

      if (c != null) { 

       getHolder().unlockCanvasAndPost(c); 
      } 

     } 


    } 

    @Override 
    public void surfaceDestroyed(SurfaceHolder holder) { 

     Log.i("Read","surfaceDestroyed is called"); 

     _run = false; 


    } 

    } 
+0

其餘的代碼在哪裏? bmp從哪裏來?或者我只是想念它? – Jack

+0

假設位圖bmp是我們在這部分代碼中已經創建的,這是代碼的主要部分,它正在顯示位圖... –

+0

爲了瞭解爲什麼只有最後一個位圖被使用,我需要看到更改正在使用的位圖的代碼 – Jack

回答