Tenho um aplicativo Android no qual, quando o usuário toca em TextView
, gostaria de aplicar um estilo definido.
Pensei em encontrar um textview.setStyle()
mas não existe. eu tentei
textview.setTextAppearance();
mas não funciona.
Tenho um aplicativo Android no qual, quando o usuário toca em TextView
, gostaria de aplicar um estilo definido.
Pensei em encontrar um textview.setStyle()
mas não existe. eu tentei
textview.setTextAppearance();
mas não funciona.
Respostas:
Fiz isso criando um novo arquivo XML da res/values/style.xml
seguinte maneira:
<?xml version="1.0" encoding="utf-8"?>
<resources>
<style name="boldText">
<item name="android:textStyle">bold|italic</item>
<item name="android:textColor">#FFFFFF</item>
</style>
<style name="normalText">
<item name="android:textStyle">normal</item>
<item name="android:textColor">#C0C0C0</item>
</style>
</resources>
Também tenho entradas no meu arquivo "strings.xml" como esta:
<color name="highlightedTextViewColor">#000088</color>
<color name="normalTextViewColor">#000044</color>
Então, em meu código, criei um ClickListener para interceptar o evento tap naquele TextView: EDITAR: A partir da API 23 'setTextAppearance' está obsoleto
myTextView.setOnClickListener(new View.OnClickListener() {
public void onClick(View view){
//highlight the TextView
//myTextView.setTextAppearance(getApplicationContext(), R.style.boldText);
if (Build.VERSION.SDK_INT < 23) {
myTextView.setTextAppearance(getApplicationContext(), R.style.boldText);
} else {
myTextView.setTextAppearance(R.style.boldText);
}
myTextView.setBackgroundResource(R.color.highlightedTextViewColor);
}
});
Para alterá-lo de volta, você usaria isto:
if (Build.VERSION.SDK_INT < 23) {
myTextView.setTextAppearance(getApplicationContext(), R.style.normalText);
} else{
myTextView.setTextAppearance(R.style.normalText);
}
myTextView.setBackgroundResource(R.color.normalTextViewColor);
Como Jonathan sugeriu, usando textView.setTextTypeface
obras, acabei de usar em um aplicativo há alguns segundos.
textView.setTypeface(null, Typeface.BOLD); // Typeface.NORMAL, Typeface.ITALIC etc.
TextView tvCompany = (TextView)findViewById(R.layout.tvCompany);
tvCompany.setTypeface(null,Typeface.BOLD);
Você pode configurá-lo a partir do código. Tipo de letra
Programaticamente: tempo de execução
Você pode fazer programaticamente usando setTypeface ():
textView.setTypeface(null, Typeface.NORMAL); // for Normal Text
textView.setTypeface(null, Typeface.BOLD); // for Bold only
textView.setTypeface(null, Typeface.ITALIC); // for Italic
textView.setTypeface(null, Typeface.BOLD_ITALIC); // for Bold and Italic
XML: Tempo de Design
Você também pode definir em XML:
android:textStyle="normal"
android:textStyle="normal|bold"
android:textStyle="normal|italic"
android:textStyle="bold"
android:textStyle="bold|italic"
Espero que isso ajude
Summved
eu descobri textView.setTypeface(Typeface.DEFAULT_BOLD);
que é o método mais simples.
tente esta linha de código.
textview.setTypeface(textview.getTypeface(), Typeface.DEFAULT_BOLD);
aqui, ele obterá o Typeface atual desta visualização de texto e o substituirá usando o novo Typeface. Um novo tipo de letra aqui é, DEFAULT_BOLD
mas você pode aplicar muitos mais.
Consulte o doco para setText () em TextView http://developer.android.com/reference/android/widget/TextView.html
Para estilizar suas strings, anexe objetos android.text.style. * A um SpannableString ou consulte a documentação de Tipos de recursos disponíveis para obter um exemplo de configuração de texto formatado no arquivo de recurso XML.