Я использую метод canvas.drawBitmap совсем немного. И это заставляет приложение бросать nullpointer excceptions в случайных случаях. Есть ли способ реализовать его, чтобы рисунок правильно отображался? Я создаю доску, которая состоит из ячеек. И клетки координируют пиксельные координаты, где должно быть изображение. Однако, как упоминалось выше, не все изображения отображаются. У меня есть ошибка, особенно на canvas.drawBitmap(bitmap, srcRect, dstRect, paint)
.Как я могу избежать утечек памяти при реализации метода canvas.drawBitmap?
ОШИБКА:
03-18 13:46:21.615 22880-22932/com.example.sam.matrix E/AndroidRuntime﹕ FATAL EXCEPTION: Game Thread
Process: com.example.sam.matrix, PID: 22880
java.lang.NullPointerException
at com.example.sam.matrix.framework.util.Painter.drawImage(Painter.java:54)
at com.example.sam.matrix.game.state.PlayState.renderCell(PlayState.java:74)
at com.example.sam.matrix.game.state.PlayState.renderBoard(PlayState.java:48)
at com.example.sam.matrix.game.state.PlayState.render(PlayState.java:38)
at com.example.sam.matrix.main.GameView.updateAndRender(GameView.java:109)
at com.example.sam.matrix.main.GameView.run(GameView.java:130)
at java.lang.Thread.run(Thread.java:841)
Где вы инициализировали 'холст' в' canvas.drawBitmap (bitmap, null, dstRect, paint); '? – iRuth
В моем классе Painter, как публичный класс Painter { закрытый холст; – jssmkp
Где вы ** инициализировали ** 'холст'? Это -> 'private Canvas canvas;' является ** объявлением ** 'canvas', а не его ** инициализацией **. Вы должны искать что-то вроде 'canvas = new Canvas();' – iRuth