2016-05-05 254 views
0

我一直在解決這個問題一個星期了,而且我知道它非常愚蠢。當我在手機或模擬器上運行我的應用程序時,正在繪製的位圖重疊。對不起,我的語法和我的問題,但在這裏的代碼和模擬器的屏幕截圖。在畫布上繪製位圖重疊

//How I am rendering/drawing the bitmaps 
public void render() { 

    if (gameHolder.getSurface().isValid()) { 
     gameCanvas = gameHolder.lockCanvas(); 
     gameCanvas.drawColor(Color.BLACK); 

     int w = gameCanvas.getWidth(); 
     int h = gameCanvas.getHeight(); 

     Log.i("measure", w + " | " + h); 

     gameCanvas.drawBitmap(loadInBitmaps(1), (w/2), h/2, gamePaint); 
     gameCanvas.drawBitmap(loadInBitmaps(2), (w/2) + 32, h/2, gamePaint); 

     gameHolder.unlockCanvasAndPost(gameCanvas); 
    } 
} 


//How I am loading in the bitmaps 
public Bitmap loadInBitmaps(int number) { 

    Bitmap loadedBitmap = null; 

    if (number == 0) loadedBitmap = null; 
    //UI Bitmaps 
    if (number == 1) 
     loadedBitmap = BitmapFactory.decodeResource(getResources(), R.drawable.northbutton); 
    if (number == 2) 
     loadedBitmap = BitmapFactory.decodeResource(getResources(), R.drawable.southbutton); 

    return loadedBitmap; 
} 

Emulator Picture

+0

我想補充一點,我使用的是32 x 32的精靈。 – Bluel3ull

+0

繪圖是否保存在特定的res文件夾?(hdpi/xhdpi ..?)。你可以打印什麼是loadedBitmap.getWidth()正確後,你實例化它的價值? – Gauthier

+0

@ Gauthier我把圖像保存在默認的可繪製文件夾中,我覺得自己像個白癡不檢查位圖的大小。位圖返回48 x 48.您能解釋爲什麼它們會擴大嗎? – Bluel3ull

回答

1

因爲你把你的可繪製在默認繪製目錄,Android的假定你的位圖需要從默認MDPI大小縮放。 如果您要禁用資源縮放,請將您的繪圖放入drawable-nodpi

+0

非常感謝你@Gauthier – Bluel3ull