2012-08-08 16 views
10

Estoy creando un TextView de forma dinámica y sombra a él utilizando el método publicado aquí: Android - shadow on text?No se puede establecer mediante programación TextView sombra

Pero no funciona. El estilo se aplica (poner el elemento textSize para probar, y funciona), pero la sombra no aparece.

TextView:

TextView tv = new TextView(this); 
RelativeLayout.LayoutParams layoutPars = new RelativeLayout.LayoutParams(LayoutParams.WRAP_CONTENT, LayoutParams.WRAP_CONTENT); 
layoutPars.addRule(RelativeLayout.CENTER_VERTICAL); 
tv.setTextColor(0xffffffff); 
tv.setText(label); 
tv.setTextSize(11); 
tv.setTextAppearance(getApplicationContext(), R.style.BlackShadow); 

Estilo:

<style name="BlackShadow"> 
    <item name="android:shadowColor">#ff000000</item> 
    <item name="android:shadowRadius">1</item> 
    <item name="android:shadowDx">-1</item> 
    <item name="android:shadowDy">-1</item> 
    <item name="android:textSize">26dip</item> 
</style> 

¿Qué estoy haciendo mal?

Respuesta

40

Prueba esto:

tv.setShadowLayer(1.5f, -1, 1, Color.LTGRAY); 

De la documentación

setShadowLayer(float radius, float dx, float dy, int shadowColor) 

Esto dibuja una capa de sombra debajo de la capa principal, con el desplazamiento especificado y el color, y el radio de desenfoque.

Para obtener más información por favor verifica http://developer.android.com/reference/android/graphics/Paint.html#setShadowLayer%28float,%20float,%20float,%20int%29

+0

qué -1.5f? No me parece un error tipográfico – Alpaslan

+0

@Alpaslan estos valores son solo por ejemplo, cámbielos según su requisito. –

Cuestiones relacionadas