sombras - texto con borde android studio
Android: ¿sombra en el texto? (5)
Me pregunto cómo agregar sombra en el texto en Android?
Tengo el siguiente código que se aplica en un mapa de bits y quería ser sombreado ...
paint.setColor(Color.BLACK);
paint.setTextSize(55);
paint.setFakeBoldText(false);
paint.setShadowLayer(1, 0, 0, Color.BLACK); //This only shadows my whole view...
Agradecido por cualquier consejo!
Debería poder agregar el estilo, así (tomado del código fuente para Ringdroid):
<style name="AudioFileInfoOverlayText">
<item name="android:paddingLeft">4px</item>
<item name="android:paddingBottom">4px</item>
<item name="android:textColor">#ffffffff</item>
<item name="android:textSize">12sp</item>
<item name="android:shadowColor">#000000</item>
<item name="android:shadowDx">1</item>
<item name="android:shadowDy">1</item>
<item name="android:shadowRadius">1</item>
</style>
Y en su diseño, use el estilo de esta manera:
<TextView android:id="@+id/info"
android:layout_width="fill_parent"
android:layout_height="wrap_content"
style="@style/AudioFileInfoOverlayText"
android:gravity="center" />
Editar: el código fuente se puede ver aquí: https://github.com/google/ringdroid
Editar2: para configurar este estilo mediante programación, harías algo como esto (modificado a partir de este ejemplo para unir los recursos de ringdroid de arriba)
TextView infoTextView = (TextView) findViewById(R.id.info);
infoTextView.setTextAppearance(getApplicationContext(),
R.style.AudioFileInfoOverlayText);
La firma de setTextAppearance
es
public void setTextAppearance (contexto contexto, int resid)
Desde: Nivel de API 1
Establece el color del texto, el tamaño, el estilo, el color de la sugerencia y el color de resaltado del recurso TextAppearance especificado.
Dibuja 2 textos: uno gris (será la sombra) y encima dibuja el segundo texto (coordenada y y 1px más que texto sombreado).
Puede hacer ambos en código y XML. Solo 4 cosas básicas para establecer.
- color de sombra
- Shadow Dx: especifica el desplazamiento del eje X de la sombra. Puede dar valores - / +, donde -Dx dibuja una sombra a la izquierda del texto y + Dx a la derecha
- sombra Dy: especifica el desplazamiento del eje Y de la sombra. -Dy especifica una sombra sobre el texto y + Dy especifica debajo del texto.
- radio de sombra: especifica cuánto debe difuminarse la sombra en los bordes. Proporcione un valor pequeño si la sombra necesita ser prominente. De lo contrario de lo contrario.
p.ej
android:shadowColor="@color/text_shadow_color"
android:shadowDx="-2"
android:shadowDy="2"
android:shadowRadius="0.01"
Esto dibuja una sombra prominente en el lado inferior izquierdo del texto. En el código, puede agregar algo como esto;
TextView item = new TextView(getApplicationContext());
item.setText(R.string.text);
item.setTextColor(getResources().getColor(R.color.general_text_color));
item.setShadowLayer(0.01f, -2, 2, getResources().getColor(R.color.text_shadow_color));
Si desea lograr una sombra como la que hace Android en el Iniciador, estamos administrando estos valores. Son útiles si desea crear TextViews que aparecerán como un widget, sin fondo.
android:shadowColor="#94000000"
android:shadowDy="2"
android:shadowRadius="4"
<style name="WhiteTextWithShadow" parent="@android:style/TextAppearance">
<item name="android:shadowDx">1</item>
<item name="android:shadowDy">1</item>
<item name="android:shadowRadius">1</item>
<item name="android:shadowColor">@android:color/black</item>
<item name="android:textColor">@android:color/white</item>
</style>
luego usar como
<TextView
android:id="@+id/text"
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:textSize="15sp"
tools:text="Today, May 21"
style="@style/WhiteTextWithShadow"/>