2012-06-10 3 views
2

Я только что заметил, что, несмотря на то, что, несмотря на Canvas.drawBitmap(), с поплавковыми координатами (по крайней мере, с некоторыми вариантами), он не выполняет субпиксельное сглаживание при блиттинге. То есть растровое изображение всегда рисуется в точных целочисленных координатах (в моем коде я не использую масштабирование, матрица холста идентична, сделана paint.setFilterBitmap(true)).Android: рисование растровых изображений с субпиксельными координатами

Может ли кто-нибудь подтвердить это наблюдение? Если это не поддерживается, существуют ли какие-либо известные планы включения функции сглаживания сглаживания?

+0

Я могу подтвердить это поведение на 2.X и 4.X устройств. В основном на планшетах (большие экраны) это очень хорошо видно. –

+0

Подтверждено. У меня было 1x1 изображение, масштабируемое, чтобы выглядеть как линия 0.5x200, и это не видно. Я пробовал paint.setAntiAlias ​​(true); paint.setFilterBitmap (true); без результата – kord

ответ

1

Согласно Romain Guy в similar Google group question:

растровых изображений (и другие примитивы) всегда рисуются пикселей выровнен, если текущее преобразование только перевод. Любое другое преобразование будет выполнять подпиксельное позиционирование.

Так простое решение является

Canvas.scale(1.00001f, 1.00001f); 
Смежные вопросы