Intenté usar una fuente personalizada en Android Studio como lo hicimos en Eclipse. ¡Pero desafortunadamente no se pudo encontrar dónde colocar la carpeta de 'activos'!
Intenté usar una fuente personalizada en Android Studio como lo hicimos en Eclipse. ¡Pero desafortunadamente no se pudo encontrar dónde colocar la carpeta de 'activos'!
Respuestas:
Actualización 2020:
Cree una carpeta llamada fuente dentro de la carpeta res y copie su fuente
<TextView
android:layout_width="match_parent"
android:layout_height="wrap_content"
android:fontFamily="@font/abc_font" />
Para uso programático:
textView.setTypeface(ResourcesCompat.getFont(context, R.font.abc_font))
Seleccione Archivo> Nuevo> Carpeta> Carpeta de activos
Haga clic en terminar
Haga clic derecho en los activos y cree una carpeta llamada fuentes
Pon tu archivo de fuente en activos > fuentes
Use el código a continuación para cambiar la fuente de su textView
TextView textView = (TextView) findViewById(R.id.textView);
Typeface typeface = Typeface.createFromAsset(getAssets(), "fonts/yourfont.ttf");
textView.setTypeface(typeface);
Hay muchas formas de establecer una familia de fuentes personalizada en el campo y estoy usando así a continuación.
Para agregar fuentes como recursos, realice los siguientes pasos en Android Studio:
1) Haga clic derecho en la carpeta res y vaya a Nuevo> directorio de recursos de Android. Aparece la ventana Nuevo directorio de recursos.
2) En la lista Tipo de recurso, seleccione la fuente y luego haga clic en Aceptar.
Nota: El nombre del directorio de recursos debe ser fuente.
3) Agregue sus archivos de fuente en la carpeta de fuentes.
Agregue la fuente en la vista deseada en su archivo xml:
Nota: Pero requirió lo siguiente para eso:
Android Studio anterior a 3.0 canario.
Su actividad extiende AppCompatActivity.
Actualice su archivo Gradle así:
compileSdkVersion 26
buildToolsVersion "26.0.1"
defaultConfig {
minSdkVersion 19
targetSdkVersion 26
versionCode 1
versionName "1.0"
testInstrumentationRunner "android.support.test.runner.AndroidJUnitRunner"
}
buildtoolsVersion
arriba a 26 y mínimo targetSdkVersion
requerido 26
classpath 'com.android.tools.build:gradle:3.0.0-beta4'
distributionUrl=https\://services.gradle.org/distributions/gradle-4.1-all.zip
Creo que en lugar de descargar el archivo .ttf podemos usar las fuentes de Google. Es muy fácil de implementar. solo tienes que seguir estos pasos. paso 1) Abra layout.xml de su proyecto y seleccione la familia de fuentes de la vista de texto en los atributos (se adjunta la captura de pantalla de referencia)
paso 2) La familia in font selecciona la opción Más fuentes ... si tu fuente no está allí. luego verá que se abrirá una nueva ventana, allí puede escribir la fuente requerida y seleccionar la fuente deseada de esa lista, es decir, Regular, Negrita, Cursiva, etc. como se muestra en la imagen a continuación.
paso 3) Luego observará que se generará automáticamente una carpeta de fuentes en la carpeta / res que tendrá el archivo xml de fuentes seleccionado.
Entonces puede usar directamente esta familia de fuentes en xml como
android:fontFamily="@font/josefin_sans_bold"
o programáticamente puedes lograr esto usando
Typeface typeface = ResourcesCompat.getFont(this, R.font.app_font);
fontText.setTypeface(typeface);
Hola, tenemos una mejor manera de aplicar fuentes en EditTexts y TextViews en Android a la vez y aplicarlo en todo el proyecto.
En primer lugar, debe hacer la carpeta de fuentes. Aquí hay pasos.
1: Vaya a la (carpeta del proyecto) Luego aplicación> src> principal
2: Cree carpetas llamadas 'activos / fuentes' en la carpeta principal.
3: Coloque sus fuentes en la carpeta de fuentes. Aquí tengo 'MavenPro-Regular.ttf'
Estos son los Pasos para aplicar fuentes personalizadas en EditText y, utilizando este enfoque, puede aplicar fuentes en cada entrada.
1: Cree una clase MyEditText (su nombre preferido ...)
2: que extiende EditText
3: aplica tu fuente
Aquí está el código Ejemplo;
public class MyEditText extends EditText {
public MyEditText(Context context, AttributeSet attrs, int defStyle) {
super(context, attrs, defStyle);
init();
}
public MyEditText(Context context, AttributeSet attrs) {
super(context, attrs);
init();
}
public MyEditText(Context context) {
super(context);
init();
}
private void init() {
if (!isInEditMode()) {
Typeface tf = Typeface.createFromAsset(getContext().getAssets(), "fonts/MavenPro-Regular.ttf");
setTypeface(tf);
}
}
}
Y aquí está el código de cómo usarlo.
MyEditText editText = (MyEditText) findViewById(R.id.editText);
editText.setText("Hello");
O en su archivo xml
<MyEditText
android:layout_width="match_parent"
android:layout_height="match_parent"
android:gravity="center"
android:textColor="#fff"
android:textSize="16dp"
android:id="@+id/editText"
/>
Con Support Library 26.0 (y Android O), las fuentes se pueden cargar fácilmente desde el recurso con:
Typeface typeface = ResourcesCompat.getFont(Context context, int fontResourceId)
Más información se puede encontrar aquí.
Quiero agregar mi respuesta para Android-O y Android Studio 2.4
Crear carpeta llamada fuente en la carpeta res . Descargue las diversas fuentes que desea agregar a su proyecto, por ejemplo, las fuentes de Google
Dentro de su familia de fuentes de usuario xml
ejemplo:
<TextView
android:fontFamily="@font/indie_flower"
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:padding="10dp"
android:text="@string/sample_text" />
3.Si desea que sea de forma programática, use el siguiente código
Typeface typeface = getResources().getFont(R.font.indie_flower);
textView.setTypeface(typeface);
para obtener más información, siga el enlace a mi entrada de blog Estilos de fuente para Android con Android Studio 2.4
Según la nueva función disponible en Android O, los recursos de fuentes en XML están disponibles como nueva función.
Para agregar fuentes como recursos, realice los siguientes pasos en Android Studio:
1) Haga clic derecho en la carpeta res y vaya a Nuevo> directorio de recursos de Android . Aparece la ventana Nuevo directorio de recursos.
2) En la lista Tipo de recurso, seleccione la fuente y luego haga clic en Aceptar.
Nota: El nombre del directorio de recursos debe ser fuente.
3) Agregue sus archivos de fuente en la carpeta de fuentes.
Puede acceder a los recursos de fuente con la ayuda de un nuevo tipo de recurso, fuente. Por ejemplo, para acceder a un recurso de fuente, use @ font / myfont o R.font.myfont.
p.ej. Typeface typeface = getResources().getFont(R.font.myfont);
textView.setTypeface(typeface);
Puede usar la biblioteca de terceros EasyFonts fácil y simple para configurar una variedad de fuentes personalizadas para su TextView
. Al usar esta biblioteca, no debería tener que preocuparse por descargar y agregar fuentes a la carpeta de recursos / fuentes. También sobre la creación de objetos tipográficos. También podrá crear carpetas de activos.
Simplemente:
TextView myTextView = (TextView)findViewById(R.id.myTextView);
myTextView.setTypeface(EasyFonts.robotoThin(this));
Hay muchos tipos de fuentes proporcionadas por esta biblioteca.
Primero agregue el archivo font.ttf en la carpeta de fuentes. Luego agregue esta línea en el método onCreate
Typeface typeface = ResourcesCompat.getFont(getApplicationContext(), R.font.myfont);
mytextView.setTypeface(typeface);
Y aqui esta mi xml
<TextView
android:id="@+id/idtext1"
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:layout_marginTop="7dp"
android:gravity="center"
android:text="My Text"
android:textColor="#000"
android:textSize="10sp"
/>
Para asignar la fuente a textView:
TextView textView = (TextView) findViewById(R.id.your_textView);
final Typeface font = Typeface.createFromAsset(context.getAssets(), "fonts/your_font_name");
your_font_name incluye extensión de fuente.
Si eres nuevo en Android como yo, esto puede ser un poco complicado. Asegúrate de llamar:
TextView myTextView = (TextView) findViewById(R.id.textView);
Typeface typeface=Typeface.createFromAsset(getAssets(), "fonts/your font.ttf");
myTextView.setTypeface(typeface);
método dentro de un método como onCreate
.
Android 8.0 (API 26) introdujo nuevas características relacionadas con las fuentes.
1) Las fuentes se pueden usar como recursos.
2) Fuentes descargables.
Si desea utilizar fuentes externas en su aplicación de Android, puede incluir archivos de fuentes en apk o configurar fuentes descargables.
Incluyendo archivos de fuente en APK : puede descargar archivos de fuente, guardarlos en res / font filer, definir la familia de fuentes y usar la familia de fuentes en los estilos.
Para obtener más detalles sobre el uso de fuentes personalizadas como recursos, consulte http://www.zoftino.com/android-using-custom-fonts
Configuración de fuentes descargables : defina la fuente proporcionando detalles del proveedor de la fuente, agregue el certificado del proveedor de la fuente y use la fuente en estilos.
Para obtener más detalles sobre las fuentes descargables, visite http://www.zoftino.com/downloading-fonts-android
Primero crea una assets
carpeta y luego crea una fonts
carpeta en ella.
Luego puede establecer font
desde assets
o directory
como abajo:
public class FontSampler extends Activity {
@Override
public void onCreate(Bundle icicle) {
super.onCreate(icicle);
setContentView(R.layout.main);
TextView tv = (TextView) findViewById(R.id.custom);
Typeface face = Typeface.createFromAsset(getAssets(), "fonts/HandmadeTypewriter.ttf");
tv.setTypeface(face);
File font = new File(Environment.getExternalStorageDirectory(), "MgOpenCosmeticaBold.ttf");
if (font.exists()) {
tv = (TextView) findViewById(R.id.file);
face = Typeface.createFromFile(font);
tv.setTypeface(face);
} else {
findViewById(R.id.filerow).setVisibility(View.GONE);
}
}
}
Ahora hay muchas maneras de aplicar la fuente, una de las más fáciles es 1) Haga clic con el botón derecho en la carpeta res y vaya a Nuevo> directorio de recursos de Android.
2) En la lista Tipo de recurso, seleccione la fuente y luego haga clic en Aceptar.
3) Coloque sus archivos de fuente en la carpeta de fuentes.
Agregue sus fuentes a la carpeta de activos en app / src / main / assets haga una vista de texto personalizada como esta:
class CustomLightTextView : TextView {
constructor(context: Context) : super(context){
attachFont(context)
}
constructor(context: Context, attrs: AttributeSet): super(context, attrs){
attachFont(context)
}
constructor(context: Context, attrs: AttributeSet?, defStyleAttr: Int) : super(context, attrs, defStyleAttr) {
attachFont(context)
}
fun attachFont(context: Context) {
this.setTypeface(FontCache.getInstance().getLightFont(context))
}
}
Agregue FontCache: para que no tenga que crear tipo de letra una y otra vez como:
class FontCache private constructor(){
val fontMap = HashMap<String,Typeface>()
companion object {
private var mInstance : FontCache?=null
fun getInstance():FontCache = mInstance?: synchronized(this){
return mInstance?:FontCache().also { mInstance=it }
}
}
fun getLightFont(context: Context):Typeface?{
if(!fontMap.containsKey("light")){
Typeface.createFromAsset(context.getAssets(),"Gotham-Book.otf");
fontMap.put("light",Typeface.createFromAsset(context.getAssets(),"Gotham-Book.otf"))
}
return fontMap.get("light")
}
}
Y ya está!
PS Desde Android O, puede agregar fuentes directamente.
coloque las fuentes en la carpeta de activos y luego aplique fontfamily: '' sus fuentes
Para nuevos lectores
Puedes usar esta biblioteca Vistas de fuentes personalizadas de Gloxey
dependencia de gradle
dependencies{
compile 'io.gloxey.cfv:custom-font-views:1.0.2'
}
¿Cómo utilizar?
Crear activos de carpeta -> fuentes . Copie sus fuentes en fuentes carpeta de .
Use la aplicación de propiedad : font_name = "font_name_string" para aplicar la fuente a la vista.
Ejemplo
<!--Font Names in srings.xml-->
<string name="aadhunik">aadhunik.ttf</string>
<string name="kung_fool">kungfool.ttf</string>
<string name="skrova">skrova.otf</string>
<string name="painting_in_the_sun_light">painting_in_the_sun_light.ttf</string>
<!--Include views in layout.xml-->
<io.gloxey.cfv.CFTextView
android:layout_width="match_parent"
android:layout_height="wrap_content"
android:gravity="center"
android:text="Aadhunik"
android:textColor="#ff00"
android:textSize="40sp"
app:font_name="@string/aadhunik" />
<io.gloxey.cfv.CFButton
android:layout_width="match_parent"
android:layout_height="wrap_content"
android:text="Kung Fool"
android:textColor="#154748"
app:font_name="@string/kung_fool" />
<io.gloxey.cfv.CFEditText
android:layout_width="match_parent"
android:layout_height="wrap_content"
android:gravity="center"
android:text="Hello world"
android:textSize="30sp"
app:font_name="@string/skrova" />
<io.gloxey.cfv.CFCheckBox
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:layout_gravity="center"
android:text="Painting In The Sun Light"
android:textSize="30sp"
app:font_name="@string/painting_in_the_sun_light" />