2010-12-31 2 views
5

Я пытаюсь сделать игру в андроид, используя спрайты (или очень пиксельные персонажи, фоны и т. Д.). Я рисую их на холст, как так ...Android Canvas.DrawBitmap без размытия/AntiAliasing?

matrix.preScale(xrat,yrat);

canvas.drawBitmap(img, matrix, null);

Где IMG является Bitmap и xrat и yrat являются весы.

Моя проблема в том, что когда я тестирую, битмап размыт или сглажен, есть ли способ предотвратить это? Жестко-блочный художественный стиль игры будет разрушен, если блоки будут размыты.

Любая (ЛЮБОЕ) помощь приветствуется!

ответ

20

Создать новую краску для использования при рисовании растровых изображений с настройками:

Paint drawPaint = new Paint(); 
drawPaint.setAntiAlias(false); 
drawPaint.setFilterBitmap(false); 

Фильтрация Я считаю, что это по умолчанию и будет пытаться сгладить растровые изображения при рисовании расширены.

+2

Я считаю, что фильтрация применяется только в том случае, если вы масштабируете UP, а не DOWN. Просто хотел указать на это, поскольку ОП не уточнил. – user432209

+2

Привет, ребята, очень много, я также хотел бы добавить к каждому, кто делает 8-битную игру или пытается сделать то, что я делаю, вам нужно разместить свои ресурсы изображения в drawable-hdpi или андроид будет фильтровать его в любом случае , – seveibar

+0

Оба хороших момента. – GuyNoir