У меня есть простой алгоритм заливки на основе растрового изображения, который берет цвет и заполняет область растрового изображения этим цветом. Проблема, которую я вижу, заключается в том, что на моем телефоне, HTC Evo 4G, когда алгоритм заполняет растровое изображение, он фактически размещает пиксели разного цвета, а на Galaxy Tab 10.1 один и тот же код размещает один цвет по всей области. Некоторый код сделает это понятнее.
Bitmap dst = ...
int replacementColor = Color.GRAY; //Color.DKGRAY and Color.LTGRAY also show the issue
dst.setPixel(x, y, replacementColor);
if(dst.getPixel(x, y) != replacementColor)
{
//Only gets triggered on the HTC Evo, not the Galaxy Tab
Log.d("Pixels don't match");
}
Если я сделаю снимок экрана устройства и увеличу масштаб, вы можете четко увидеть рисунок шахматной доски на Evo и сплошной цвет на вкладке Galaxy.
Я уверен, что это хорошо известная проблема с графикой, но я не знаю правильной терминологии, чтобы выяснить, как (и если) я могу ее обойти. Проблема возникает, когда я пытаюсь заполнить эту область во второй раз - мой алгоритм соответствует цветам, и только области одинакового цвета, но после заполнения серым цветом на телефоне у меня нет сплошной области того же цвета. цвет, поэтому алгоритм не заполняет всю область.
Любые идеи, как я могу наложить сплошной цвет на Evo, или определить, что эта проблема происходит, чтобы я мог соответствующим образом заполнить область во второй раз? Может быть, мне нужно посмотреть на соседние пиксели и усреднить цвет?