Uso anti aliasing para hacer que mis imágenes sean más fluidas. Al usar anti aliasing, se dibujará un borde oscuro alrededor de las imágenes. Esto sucede porque Android usa el color negro y lo mezcla con el amarillo de las imágenes. ¡Este es un problema de gernal! Cuando dibujo un rectángulo y establezco el valor alfa en 127, la imagen también se oscurece. En lugar de usar Android, el negro debe usar blanco para dibujar la transparencia.Error semi transparente de Android general
¿Hay alguna solución alternativa a cómo puedo manejar este problema?
Ejemplo de código fuente para dibujar un rectángulo semitransparente en un lienzo. El rectángulo también es oscuro, pero debe ser brillante.
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);
Las imágenes son gráficos SVG, que se representan con la siguiente biblioteca: http://code.google.com/p/svg-android/
Creo que he encontrado el error. El problema es SurfaceView. Su fondo es negro. El mismo error semitransparente se produce cuando uso el código anterior y lo visualizo en un ImageView y el color de fondo del elemento de la interfaz de usuario detrás de ImageView es negro. El color de fondo de SurfaceView siempre es negro. Si cambio esto a blanco con setBackgroundColor, el SurfaceView se pone blanco, pero el fondo blanco se dibujará SOBRE TODAS mis otras imágenes dibujadas con OpenGL. Creo que estos deben ser cambiados. Primero se debe dibujar el color de fondo y las cosas de OpenGL.
Las imágenes son gráficos SVG que se representan utilizando la biblioteca vinculada anteriormente. El fondo nunca cambia. Se mantiene blanco. –
Solo por razones de comprensión: el problema es que el SVG está dibujado con "bordes duros". Normalmente, el algoritmo encontrará un color entre el edgecolor y el color de fondo, pero en este ejemplo no hay un color de fondo, porque el svg se representa solo. Como resultado, se usará cualquier color. ¿Está bien? –
¿Cómo está renderizando los SVG? ¿Estás rellenando ImageViews o tomándolos como una Imagen y dibujándolos en un Lienzo? – Mark