Eu estava tentando usar uma fonte personalizada no Android Studio, como fizemos no Eclipse. Mas, infelizmente, não consegui descobrir onde colocar a pasta 'ativos'!
Eu estava tentando usar uma fonte personalizada no Android Studio, como fizemos no Eclipse. Mas, infelizmente, não consegui descobrir onde colocar a pasta 'ativos'!
Respostas:
Atualização 2020:
Crie uma pasta chamada fonte dentro da pasta res e copie sua fonte
<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))
Selecione Arquivo> Novo> Pasta> Pasta de Ativos
Clique em terminar
Clique com o botão direito do mouse em ativos e crie uma pasta chamada fontes
Coloque seu arquivo de fonte em ativos > fontes
Use o código abaixo para alterar a fonte do seu textView
TextView textView = (TextView) findViewById(R.id.textView);
Typeface typeface = Typeface.createFromAsset(getAssets(), "fonts/yourfont.ttf");
textView.setTypeface(typeface);
Existem várias maneiras de definir a família de fontes personalizadas no campo e estou usando assim abaixo.
Para adicionar fontes como recursos, execute as seguintes etapas no Android Studio:
1) Clique com o botão direito do mouse na pasta res e vá para Novo> diretório de recursos do Android. A janela Novo Diretório de Recursos é exibida.
2) Na lista Tipo de recurso, selecione a fonte e clique em OK.
Nota: O nome do diretório de recursos deve ser fonte.
3) Adicione seus arquivos de fonte na pasta fonte.
Adicione a fonte na visualização desejada no seu arquivo xml:
Nota: Mas você solicitou o seguinte para isso:
Android Studio acima para 3.0 canary.
Sua atividade estende AppCompatActivity.
Atualize seu arquivo Gradle assim:
compileSdkVersion 26
buildToolsVersion "26.0.1"
defaultConfig {
minSdkVersion 19
targetSdkVersion 26
versionCode 1
versionName "1.0"
testInstrumentationRunner "android.support.test.runner.AndroidJUnitRunner"
}
buildtoolsVersion
acima de 26 e mínimo targetSdkVersion
exigido 26
classpath 'com.android.tools.build:gradle:3.0.0-beta4'
distributionUrl=https\://services.gradle.org/distributions/gradle-4.1-all.zip
Acho que, em vez de baixar o arquivo .ttf, podemos usar fontes do Google. É muito fácil de implementar. somente você tem que seguir estas etapas. etapa 1) Abra o layout.xml do seu projeto e a família de fontes selecionadas da exibição de texto em atributos (para a captura de tela de referência anexada)
etapa 2) Na família de fontes selecione Mais fontes .. se a fonte não estiver lá. então você verá uma nova janela se abrir; aí você pode digitar a fonte desejada e selecionar a fonte desejada nessa lista, por exemplo) Regular, Negrito, Itálico etc. como mostrado na imagem abaixo.
Etapa 3) Em seguida, você observará que uma pasta de fontes será gerada automaticamente na pasta / res com o arquivo xml de fontes selecionado.
Em seguida, você pode usar diretamente essa família de fontes no xml como
android:fontFamily="@font/josefin_sans_bold"
ou pro gramaticamente, você pode conseguir isso usando
Typeface typeface = ResourcesCompat.getFont(this, R.font.app_font);
fontText.setTypeface(typeface);
Olá, aqui temos uma maneira melhor de aplicar fontes em EditTexts e TextViews no android de uma só vez e aplicá-las em todo o projeto.
Antes de tudo, você precisa criar a pasta de fontes. Aqui estão os passos.
1: Vá para (pasta do projeto) e, em seguida, app> src> main
2: Crie pastas denominadas 'assets / fonts' na pasta principal.
3: Coloque suas fontes na pasta de fontes. Aqui eu tenho 'MavenPro-Regular.ttf'
Aqui estão as etapas para aplicar fontes personalizadas no EditText e, usando essa abordagem, você pode aplicar fontes em cada entrada.
1: Crie uma classe MyEditText (seu nome preferido ...)
2: que estende o EditText
3: aplique sua fonte
Aqui está o código Exemplo;
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);
}
}
}
E aqui está o código de como usá-lo.
MyEditText editText = (MyEditText) findViewById(R.id.editText);
editText.setText("Hello");
Ou no seu arquivo 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"
/>
Com a Biblioteca de suporte 26.0 (e o Android O), as fontes podem ser carregadas facilmente dos recursos com:
Typeface typeface = ResourcesCompat.getFont(Context context, int fontResourceId)
Mais informações podem ser encontradas aqui.
Quero adicionar minha resposta para o Android-O e o Android Studio 2.4
Crie uma pasta chamada fonte na pasta res . Faça o download das várias fontes que você deseja adicionar ao exemplo de fontes do Google do seu projeto
Dentro da sua família de fontes xml user
exemplo:
<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.Se você quiser que seja de maneira programática, use o código a seguir
Typeface typeface = getResources().getFont(R.font.indie_flower);
textView.setTypeface(typeface);
para obter mais informações, siga o link para minha postagem no blog Estilos de fonte para Android com Android Studio 2.4
Conforme o novo recurso disponível no Android O, os recursos de fonte em XML estão disponíveis como novo recurso.
Para adicionar fontes como recursos, execute as seguintes etapas no Android Studio:
1) Clique com o botão direito do mouse na pasta res e vá para Novo> diretório de recursos do Android . A janela Novo Diretório de Recursos é exibida.
2) Na lista Tipo de recurso, selecione a fonte e clique em OK.
Nota: O nome do diretório de recursos deve ser fonte.
3) Adicione seus arquivos de fonte na pasta fonte.
Você pode acessar os recursos da fonte com a ajuda de um novo tipo de recurso, a fonte. Por exemplo, para acessar um recurso de fonte, use @ font / myfont ou R.font.myfont.
por exemplo. Typeface typeface = getResources().getFont(R.font.myfont);
textView.setTypeface(typeface);
Você pode usar a biblioteca fácil e simples de terceiros EasyFonts para definir uma variedade de fontes personalizadas para o seu TextView
. Ao usar esta biblioteca, você não precisa se preocupar em baixar e adicionar fontes na pasta assets / fonts. Também sobre a criação de objetos Typeface. Você estará livre de criar uma pasta de ativos também.
Simplesmente:
TextView myTextView = (TextView)findViewById(R.id.myTextView);
myTextView.setTypeface(EasyFonts.robotoThin(this));
Existem muitos tipos de fontes fornecidos por esta biblioteca.
1º adicione o arquivo font.ttf na pasta Font. Em seguida, adicione esta linha no método onCreate
Typeface typeface = ResourcesCompat.getFont(getApplicationContext(), R.font.myfont);
mytextView.setTypeface(typeface);
E aqui está o meu 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 atribuir a fonte ao textView:
TextView textView = (TextView) findViewById(R.id.your_textView);
final Typeface font = Typeface.createFromAsset(context.getAssets(), "fonts/your_font_name");
your_font_name inclui extensão de fonte.
Se você é muito novo no Android como eu, isso pode ser um pouco complicado. Certifique-se de ligar para:
TextView myTextView = (TextView) findViewById(R.id.textView);
Typeface typeface=Typeface.createFromAsset(getAssets(), "fonts/your font.ttf");
myTextView.setTypeface(typeface);
método dentro de um método como onCreate
.
O Android 8.0 (API 26) introduziu novos recursos relacionados a fontes.
1) As fontes podem ser usadas como recursos.
2) Fontes para download.
Se você quiser usar fontes externas em seu aplicativo para Android, poderá incluir arquivos de fontes no apk ou configurar fontes para download.
Incluindo arquivos de fonte no APK : você pode baixar arquivos de fonte, salvá-los em res / font arquivador, definir família de fontes e usar família de fontes em estilos.
Para obter mais detalhes sobre o uso de fontes personalizadas como recursos, consulte http://www.zoftino.com/android-using-custom-fonts
Configurando fontes para download : Defina a fonte fornecendo detalhes do provedor, adicione o certificado do provedor e use a fonte nos estilos.
Para obter mais detalhes sobre fontes para download, consulte http://www.zoftino.com/downloading-fonts-android
Primeiro crie uma assets
pasta e depois crie uma fonts
pasta nela.
Então você pode definir a font
partir assets
ou directory
como abaixo:
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);
}
}
}
Agora, existem muitas maneiras de aplicar a fonte. Uma das maneiras mais fáceis é a seguinte: 1) Clique com o botão direito do mouse na pasta res, vá para Novo> diretório de recursos do Android.
2) Na lista Tipo de recurso, selecione a fonte e clique em OK.
3) Coloque seus arquivos de fonte na pasta fonte.
Adicione suas fontes à pasta assets em app / src / main / assets para criar uma visualização 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))
}
}
Adicione FontCache: para que você não precise criar tipos de letra repetidamente 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")
}
}
E você está pronto!
PSFrom android O, você pode adicionar fontes diretamente.
coloque fontes na pasta de ativos e aplique fontfamily: '' suas fontes
Para novos leitores
Você pode usar esta biblioteca Gloxey Custom Font Views
dependência gradle
dependencies{
compile 'io.gloxey.cfv:custom-font-views:1.0.2'
}
Como usar?
Crie ativos de pasta -> fontes . Copie suas fontes para a pasta de fontes .
Use a propriedade app: font_name = "font_name_string" para aplicar a fonte na exibição.
Exemplo
<!--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" />