Общая ошибка полупрозрачности Android

Я использую сглаживание, чтобы сделать мои изображения более гладкими. При использовании сглаживания вокруг изображений будет нарисована темная рамка. Это происходит потому, что Android использует черный цвет и смешивает его с желтым на изображениях. Это врожденная проблема! Когда я рисую прямоугольник и устанавливаю альфа-значение 127, изображение также становится более темным. Вместо того, чтобы использовать черный цвет, Android должен использовать белый цвет для прорисовки прозрачности.

Есть ли способ решения этой проблемы?

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

Bitmap bmp = Bitmap.createBitmap(200, 200, Config.ARGB_8888);
Canvas canvas = new Canvas(bmp);
Paint rPaint = new Paint();
rPaint.setColor(Color.parseColor("#F7E836"));
rPaint.setAlpha(127);
rPaint.setStyle(Paint.Style.FILL);
canvas.drawRect(0, 0, 100, 100, rPaint);

Изображения представляют собой SVG-графику, которая отображается с помощью следующей библиотеки: http://code.google.com/p/svg-android/

Я думаю, что обнаружил ошибку. Проблема в SurfaceView. Его фон черный. Такая же полупрозрачная ошибка возникает, когда я использую приведенный выше код и отображаю его в ImageView, а цвет фона элемента пользовательского интерфейса за ImageView черный. Цвет фона SurfaceView всегда черный. Если я изменю его на белый с помощью setBackgroundColor, SurfaceView станет белым, но белый фон будет нарисован НАД всеми моими другими изображениями, нарисованными с помощью OpenGL. Я думаю, их нужно поменять. Сначала должен быть нарисован цвет фона, а затем материал OpenGL.

6
задан Basic Coder 9 October 2011 в 15:51
поделиться