Estaba buscando algunas fuentes con estilo para mi aplicación de Android. pero el problema es cómo puedo hacer que mi aplicación Android sea compatible con fuentes externas.Cómo agregar fuentes externas a la aplicación de Android
Gracias.
Estaba buscando algunas fuentes con estilo para mi aplicación de Android. pero el problema es cómo puedo hacer que mi aplicación Android sea compatible con fuentes externas.Cómo agregar fuentes externas a la aplicación de Android
Gracias.
Debe crear la carpeta de fuentes en la carpeta de activos en su proyecto y poner su TTF en ella. Luego, en su Actividad onCreate()
TextView myTextView=(TextView)findViewById(R.id.textBox);
Typeface typeFace=Typeface.createFromAsset(getAssets(),"fonts/mytruetypefont.ttf");
myTextView.setTypeface(typeFace);
Tenga en cuenta que no todo el TTF funcionará. Mientras estaba experimentando, funcionó solo para un subconjunto (en Windows, aquellos cuyo nombre está escrito en letras mayúsculas).
Crea una carpeta llamada fuentes en la carpeta de activos y agrega el fragmento del enlace a continuación.
Typeface tf = Typeface.createFromAsset(getApplicationContext().getAssets(),"fonts/fontname.ttf");
textview.setTypeface(tf);
Gracias Janardhan gracias, lo tengo. – bHaRaTh
La manera más fácil de lograr esto es empaquetar las fuentes deseadas con su aplicación. Para hacer esto, simplemente cree una carpeta assets/en la raíz del proyecto, y ponga sus fuentes (en formato TrueType, o TTF) en los activos. Puede, por ejemplo, crear activos/fuentes/y poner sus archivos TTF allí.
Luego, necesita decirle a sus widgets que usen esa fuente. Desafortunadamente, ya no puede usar XML de diseño para esto, ya que el XML no conoce acerca de las fuentes que puede haber guardado como un activo de la aplicación. En su lugar, debe realizar el cambio en el código Java, llamando al Typeface.createFromAsset (getAssets(), "fonts/HandmadeTypewriter.ttf"), y luego tomando el objeto Typeface creado y pasándolo a su TextView a través de setTypeface ()
Para mayor referencia aquí es el tutorial donde obtuve esto:
Para poner en práctica lo que necesita utilizar tipografía seguir adelante con la muestra a continuación
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);
}
}
}
para 'allViews', tiene que recorrer el diseño usando' getChildCount() ' , por lo que podría reemplazar el foreach por un simple bucle for. – ConquerorsHaki
Puede utilizar la costumbre TextView para toda la aplicación con fuente personalizada aquí es un ejemplo para eso
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*/);
}
}
}
Recomiendo este approach es muy agradable con agregar el nombre de la fuente personalizada en typeface
a styles.xml
y poner su conjunto de fuentes en la carpeta assets
.
Muy buen enfoque, sugiero llamarlo la atención. Y tal vez sea una buena idea copiar el código principal y publicarlo aquí, si no se podrá acceder al enlace en el futuro. – validcat
Un punto más además de las respuestas anteriores. Cuando se utiliza una fuente dentro de un fragmento, la instanciación tipo de letra se debe hacer en el método onAttach (override) como se indica a continuación:
@Override
public void onAttach(Activity activity){
super.onAttach(activity);
Typeface tf = Typeface.createFromAsset(getApplicationContext().getAssets(),"fonts/fontname.ttf");
}
Motivo:
hay un corto espacio de tiempo antes de que un fragmento es adjunto a una actividad. Si se llama al método CreateFromAsset antes de adjuntar un fragmento a una actividad, se produce un error.
gracias zelimir lo tengo. – bHaRaTh
De nada. – Zelimir
¿dónde está esta carpeta de activos? Estoy usando android studio y puedo encontrarlo en src/ – intoTHEwild