2014-09-29 63 views
1

XML不是這種情況下的因素。我用onDraw函數覆蓋畫布,並將整個畫面作爲畫布提供。Android Matrix顯示不正確,我該如何解決?

保護無效onDraw(畫布畫布){ canvas.drawColor(Color.BLACK);

int gemID=0; 
    for(int c=0;c<5;c++){ 
     for(int r=0;r<5;r++){ 
      gemID= GemField[c][r]; 
      canvas.drawBitmap(bmps.get(gemID),c,r,null); 
     } 
    } 

在創建繪製畫布時,我創建矩陣,然後填充矩陣,如下面的代碼所示。

私人無效createGemField(){

Random rnd= new Random(); 
    for(int col=0;col<5;col++){ 
     for(int row=0;row<5;row++){ 
      int gemNum = rnd.nextInt(4-0); 
      GemField[col][row]=gemNum; 
     } 
    } 

}

private void drawGems(){ 
    int gemID=0; 

    for(int col=0;col<5;col++){ 
     for(int row=0;row<5;row++){ 

      gemID=GemField[col][row]; 
      canvas.drawBitmap(bmps.get(gemID),col,row,null); 

     } 
    } 

} 

不幸的是我得到的圖像與多個對象在屏幕的左上角方形似乎像他們在縮放彼此。更像是一個蛇鱗或帶狀皰疹,物體重疊但不完全。離矩陣起始位置越遠,重疊越少。任何想法爲什麼這可能會發生?

回答

0

canvas.drawBitmap(bmps.get(gemID),c,r,null);

這裏,cr是x,並且其中所述位圖繪製在畫布上的點的y分量。我假設你的位圖大於1px,所以你應該把它改成:

canvas.drawBitmap(bmps.get(gemID), 50 * c, 50 * r, null);或類似的東西;位圖之間現在是50px的空間。

+0

Omg非常感謝你。我不能相信我沒有注意到,你解決了我的問題。 – MarkEjr 2014-09-29 17:21:11

+0

!!!!現在回到完成這個項目。 – MarkEjr 2014-09-29 17:22:01

+0

好酷,我很高興我可以幫助:-)你能接受這個答案嗎? – 2014-09-29 17:44:36

相關問題