24 votos

conjunto de fuente en tiempo de ejecución, Textview

Cómo definir la fuente a textview, que se crea en tiempo de ejecución?

he creado textview

Textview tv = new TextView(this);      
tv.setTextSize(20);

como puedo cambiar el tamaño de
quiero establecer el estilo de fuente "Verdana".

Cómo hacer esto?? saludos shishir

51voto

Paresh Mayani Puntos48123

Poner En el integrado de la Fuente en Tiempo de Ejecución:

  • Primero de todo, Para Cambiar la Fuente de la cara, un tipo de Letra de la clase se utiliza.

  • Ahora, at Run-Time, para establecer la fuente de la cara, Use setTypeface(Typeface) desde el código Java

  • at Design-Time, para establecer la fuente de la cara, Use android:typeface="serif"

Por ejemplo:

<TextView android:text="@+id/TextView01"
 android:id="@+id/TextView01"
 android:layout_width="wrap_content"
 android:layout_height="wrap_content"
 android:textSize="30px"
 android:textStyle="italic"
 android:typeface="serif" />

Para personalizar la fuente(s) en su aplicación de Android

Para ello, basta con crear una assets/ carpeta en la raíz del proyecto, y poner tus fuentes (TrueType, o TTF, forma) en los activos. Usted puede crear, por ejemplo, assets/fonts/ y poner sus archivos TTF:

  TextView tv=(TextView)findViewById(R.id.custom); 
  Typeface face=Typeface.createFromAsset(getAssets(), "fonts/HandmadeTypewriter.ttf"); 
  tv.setTypeface(face); 

3voto

Dilroop Singh Puntos49

Usted puede tener .fuentes ttf en la carpeta de recursos. A decir de la fuente, el nombre es "por defecto.ttf", y ahora tiene que escribir debajo de 2 líneas de código

TextView text = new TextView(this);
text.setTypeface(Typeface.createFromAsset(getAssets(), "default.ttf"));

Usted debe también hemos cuidado porque de fuentes diferentes tienen diferentes tamaños. Puede que sea necesario establecer el tamaño como :

text.setTextSize(20);

1voto

Asahi Puntos5938

Usted necesidad de utilizar el tipo de Letra. Mira aquí para los enlaces y ejemplos

1voto

Joseph Earl Puntos11953

Aquí es una pequeña utilidad de la clase

public class TypefaceHelper {

    public static void setViewGroupTypeface(ViewGroup container, Typeface typeface) {
        final int children = container.getChildCount();

        for (int i = 0; i < children; i++) 
            View child = container.getChildAt(i);

            if (child instanceof TextView) {
                setTextViewTypeface((TextView) child, typeface);
            } else if (child instanceof ViewGroup) {
                setViewGroupTypeface((ViewGroup) child, typeface);
            }
        }
    }

    public static void setTextViewTypeface(TextView textView, Typeface typeface) {
        textView.setTypeface(typeface);
    }

}

Por cosas como Spinners o ListViews (es decir, cualquier tipo de AdapterView) que generan a sus hijos de un adaptador que usted tendrá que configurar el tipo de letra de cada elemento View en la getView (o similar) método de la adaptador. Esto es debido a que las opiniones pueden ser creados según sea necesario y así establecer el Typeface en onCreate no funcionará correctamente.

-2voto

Muzikant Puntos2073

Usted puede utilizar el código siguiente para establecer todo el texto a una fuente específica en tiempo de ejecución. Simplemente llame a la setViewGroupFont método al final de su Actividad onCreate método, o siempre que se dinámicamente crear nuevas vistas:

private static final String FONT_NAME = "fonts/Roboto-Regular.ttf";
private static Typeface m_font = null;

public static Typeface getFont(Context p_context)
{
    if (null == m_font && null != p_context)
    {
        m_font = Typeface.createFromAsset(p_context.getApplicationContext().getAssets(), FONT_NAME);
    }
    return m_font;
}

public static void setViewGroupFont(ViewGroup p_viewGroup)
{
    if (null != p_viewGroup)
    {
        for (int currChildIndex = 0; currChildIndex < p_viewGroup.getChildCount(); currChildIndex++)
        {
            View currChildView = p_viewGroup.getChildAt(currChildIndex);

            if (ViewGroup.class.isInstance(currChildView))
            {
                setViewGroupFont((ViewGroup) currChildView);
            }
            else
            {
                try
                {
                    Method setTypefaceMethod = currChildView.getClass().getMethod("setTypeface", Typeface.class);

                    setTypefaceMethod.invoke(currChildView, getFont(p_viewGroup.getContext()));
                }
                catch (NoSuchMethodException ex)
                {
                    // Do nothing
                }
                catch (Exception ex)
                {
                    // Unexpected error setting font
                }
            }
        }
    }
}

Iteramos.com

Iteramos es una comunidad de desarrolladores que busca expandir el conocimiento de la programación mas allá del inglés.
Tenemos una gran cantidad de contenido, y también puedes hacer tus propias preguntas o resolver las de los demás.

Powered by: