Зачем нам нужен Paint, чтобы рисовать целочисленный массив цветов в виде растрового изображения в Android? - PullRequest
0 голосов
/ 15 декабря 2011

Простите, если я что-то упускаю, но я нигде не мог найти ответ на этот вопрос. В android у canvas есть метод для рисования массива целых чисел в виде растрового изображения:

void     drawBitmap(int[] colors, int offset, int stride,
                    int x, int y, int width, int height,
                    boolean hasAlpha, Paint paint)

Я понимаю каждый аргумент, передаваемый этому методу, за исключением последнего. Зачем ему нужна информация «Paint», когда он получает точную информацию, необходимую для визуализации растрового изображения из целочисленного массива, переданного как «colors»?

Есть ли разница в результатах, если мы используем разные краски? Если да, то? Имеет ли это какое-либо отношение к псевдопиксельным <==> реальным пиксельным преобразованиям (таким как сглаживание?). Если да, то какое влияние на производительность оказывает это (и / или другие свойства рисования? *

Также (бонусный вопрос) есть ли в любом случае экземпляр нового объекта рисования с желаемыми свойствами, или для этого всегда требуется несколько строк кода? (да, см. ниже)

Редактировать : Я узнал, что объект рисования можно создать с помощью флагов:

private Paint mPaint = new Paint(Paint.FILTER_BITMAP_FLAG + Paint.ANTI_ALIAS_FLAG + Paint.DITHER_FLAG);

Ответы [ 2 ]

1 голос
/ 15 декабря 2011

Ну, это функция, вызываемая из метода drawBitmap.

native_drawBitmap(mNativeCanvas, colors, offset, stride, x, y, width, height, hasAlpha,
            paint != null ? paint.mNativePaint : 0);

Как видите, даже если вы отправляете null, 0 передается.Приведенный выше код обращается к платформе Skia.

Насколько я понимаю, объект рисования используется для обработки различий в плотности между холстом, растровым изображением и экраном.

1 голос
/ 15 декабря 2011

Вам не нужно , краска может быть нулевой.

Скорее всего, вы можете использовать свойства Paint ColorFilter или maskFilter, как они будут применяться к вашим цветам.

...