android - temas - Cómo obtener el atributo de estilo de un TextView
styles android studio (2)
Estoy creando una clase TextView personalizada MTextView. Dentro del constructor quiero saber el valor del estilo attrib de la vista de texto para poder establecer diferentes tipos de letra dependiendo de si el estilo está configurado en negrita o no. Pero no hay función getStyle ()? ¿Qué hacer?
public class MTextView extends TextView{
public MTextView(Context context, AttributeSet attrs, int defStyle) {
super(context, attrs, defStyle);
if(style.equals(TypeFace.bold)) //how to get style?
setTypeface(Typeface.createFromAsset(getContext().getAssets(),"rc.ttf"));
}
}
Usa este código:
if (attrs != null) {
try {
int style = attrs.getAttributeIntValue(
"http://schemas.android.com/apk/res/android",
"textStyle",
Typeface.NORMAL);
setTypeface(Typeface.createFromAsset(
getContext().getAssets(),
"rc.ttf"),
style);
}
catch (Exception e) {
Log.e(TAG, e.getMessage());
}
}
Puede obtener textStyle del método de instancia getTypeface () de TextView.
int style = getTypeface().getStyle();
Si no se ha especificado textStyle (es decir, desea admitir textStyle normal), getTypeface () puede devolver null.
En el caso de que no sea nulo, puede ser mejor suponer que textStyle se establece implícitamente como normal.