Cómo agregar fuentes externas a la aplicación Android
Buscaba algunas fuentes elegantes para mi aplicación de Android. Pero el problema es cómo puedo hacer que mi aplicación android compatible con fuentes externas.
Gracias.
- ¿Es posible el estilo de los estilos de fuentes de Android con líder y el seguimiento?
- Lista lenta cuando se establece la fuente personalizada
- Reduciendo el tamaño de fuente de los componentes de AlertDialog.Builder
- Fuente Kannada en Android ICS
- Fontfamily no funciona en Android Lollipop
- RuntimeException: tipo de letra nativo no se puede hacer o pérdida de memoria para personalizado TextView carga de fuente
- Cómo cambiar el tamaño de fuente en una aplicación completa mediante programación, Android?
- Cómo cambiar la fuente de título ActionBar cuando se utiliza AppCompat
- ¿Es posible establecer una fuente personalizada para toda la aplicación?
- Cómo obtener el nombre de la fuente por un TextView o EditText en android?
- Fuentes personalizadas para TextView basadas en idiomas dentro de String
- PagerSlidingTabStrip cambiar la fuente de los títulos
- Haga mi propia fuente para android
Usted necesita crear la carpeta de fuentes en la carpeta de activos en su proyecto y poner su TTF en ella. A continuación, en su Activity onCreate ()
TextView myTextView=(TextView)findViewById(R.id.textBox); Typeface typeFace=Typeface.createFromAsset(getAssets(),"fonts/mytruetypefont.ttf"); myTextView.setTypeface(typeFace);
Tenga en cuenta que no todos los TTF funcionará. Mientras estaba experimentando, funcionaba sólo para un subconjunto (en Windows, aquellos cuyo nombre está escrito en mayúsculas).
Usted puede utilizar el TextView personalizado para la aplicación completa con la fuente personalizada aquí es un ejemplo para que
public class MyTextView extends TextView { Typeface normalTypeface = Typeface.createFromAsset(getContext().getAssets(), Constants.FONT_REGULAR); Typeface boldTypeface = Typeface.createFromAsset(getContext().getAssets(), Constants.FONT_BOLD); public MyTextView(Context context, AttributeSet attrs, int defStyle) { super(context, attrs, defStyle); } public MyTextView(Context context, AttributeSet attrs) { super(context, attrs); } public MyTextView(Context context) { super(context); } public void setTypeface(Typeface tf, int style) { if (style == Typeface.BOLD) { super.setTypeface(boldTypeface/*, -1*/); } else { super.setTypeface(normalTypeface/*, -1*/); } } }
Cree una carpeta denominada fuentes en la carpeta de activos y agregue el fragmento del enlace de abajo.
Typeface tf = Typeface.createFromAsset(getApplicationContext().getAssets(),"fonts/fontname.ttf"); textview.setTypeface(tf);
Para implementar necesitas usar Typeface y pasar por el siguiente ejemplo
Typeface typeface = Typeface.createFromAsset(getAssets(), "fonts/Roboto/Roboto-Regular.ttf"); for (View view : allViews) { if (view instanceof TextView) { TextView textView = (TextView) view; textView.setTypeface(typeface); } } }
La forma más sencilla de lograr esto es empaquetar los tipos de letra deseados con su aplicación. Para ello, simplemente cree una carpeta assets / en la raíz del proyecto y coloque las fuentes (en TrueType o TTF, forma) en los recursos. Por ejemplo, puede crear activos / fuentes / y colocar los archivos TTF allí.
A continuación, debe indicarle a sus widgets que utilicen esa fuente. Desafortunadamente, ya no puede utilizar XML de diseño para esto, ya que el XML no conoce ninguna fuente que pueda haber guardado como un recurso de aplicación. En su lugar, necesita realizar el cambio en el código Java, llamando a Typeface.createFromAsset (getAssets (), "fonts / HandmadeTypewriter.ttf"), luego tomar el objeto Typeface creado y pasarlo a su TextView a través de setTypeface ().
Para más referencia aquí es el tutorial donde obtuve esto:
Recomiendo este enfoque es muy agradable con la adición de nombre de la fuente personalizada en el typeface
de typeface
a styles.xml
y poner su conjunto de fuentes en la carpeta de assets
.
Un punto más, además de las respuestas anteriores. Cuando se utiliza una fuente dentro de un fragmento, la instanciación de tipo de letra debe hacerse en el método onAttach (anulación) como se indica a continuación:
@Override public void onAttach(Activity activity){ super.onAttach(activity); Typeface tf = Typeface.createFromAsset(getApplicationContext().getAssets(),"fonts/fontname.ttf"); }
Razón :
Hay un corto lapso de tiempo antes de que un fragmento se adjunte a una actividad. Si se llama al método CreateFromAsset antes de adjuntar fragmento a una actividad se produce un error.
- ¿Cuándo borrar el directorio caché de Android?
- ¿Cómo crear un enlace para todos los dispositivos móviles que abre google maps con una ruta que empieza en la ubicación actual, destinando un lugar determinado?