Android Paint.setShadowLayer () vs Canvas.drawbitmap () problemas

Utilizo el código siguiente para dibujar un mapa de bits durante onDraw de una vista personalizada

Paint p = new Paint(Paint.ANTI_ALIAS_FLAG|Paint.FILTER_BITMAP_FLAG); p.setShadowLayer(3,3,3,0xff000000); Bitmap bmp = BitmapFactory.decodeResource(some drawable jpg); canvas.drawBitmap(bmp,null,new Rect(blah blah),p); 

Y la sombra parece divertida. ¿Qué significa gracioso? Quiero decir que tengo una sombra diferente, entonces si yo estaba llamando a canvas.drawRect (). Parece sorta como el código de sombra de Android es tratar el mapa de bits como un canal alfa o algo así.

Han intentado agregar p.setColor (0xff000000); Y p.setStyle (Paint.Style.FILL); Pero no la diferencia.

Supongo que podría drawRect con sombra, a continuación, drawBitmap con la sombra, pero que parece tonto como sería la prestación de píxeles dos veces.

Básicamente, la capa de sombra no funciona para nada, excepto el texto. Es muy tonto. Compruebe el gráfico de operaciones con aceleración de hardware de Android .

Esta pregunta fue preguntada en 2010 cuando los árboles de vista acelerada por hardware no existían .. basándome en las cosas que he leído, incluso entonces la capa de sombra sólo funcionaba para formas simples (si es que las había) y otras obtuvieron resultados extraños al usarlo Nada más que texto. Puede que no tengas suerte.

Por último, hay muchas maneras de que se puede falsificar una capa de sombra. Usted puede envolver una vista en otra vista y dibujar debajo de ella. Puedes escribir una vista que dibuje la sombra tú mismo como un gradiente radial, etc. Pero probablemente solo quieras hacer un 9patch que parezca una sombra y usarlo.

Tal vez http://developer.android.com/reference/android/graphics/Paint.html#isAntiAlias ​​() puede ayudarte.

 paint.setAntiAlias(true); 

Tal vez usted debe tener diferentes objetos de pintura para diferentes propósitos como texto, mapa de bits, etc Así que la configuración no afectará a los demás.

FlipAndroid es un fan de Google para Android, Todo sobre Android Phones, Android Wear, Android Dev y Aplicaciones para Android Aplicaciones.