tachar - ¿Cómo se resalta un texto en Android XML?
textview subrayado android studio (8)
¿Cómo se resalta un texto en un archivo XML? No puedo encontrar una opción en textStyle
.
En primer lugar, vaya al archivo String.xml
puede agregar atributos html como cursiva, negrita o subrayado aquí.
<resource>
<string name="your_string_here">This is an <u>underline</u>.</string>
</resources>
Otra forma de hacerlo es crear un componente personalizado que extienda TextView. Es bueno para casos en los que necesite tener múltiples TextViews subrayados.
Aquí está el código para el componente:
package com.myapp.components;
import android.content.Context;
import android.support.v7.widget.AppCompatTextView;
import android.text.SpannableString;
import android.text.style.UnderlineSpan;
import android.util.AttributeSet;
public class LinkTextView extends AppCompatTextView {
public LinkTextView(Context context) {
this(context, null);
}
public LinkTextView(Context context, AttributeSet attrs) {
super(context, attrs);
}
@Override
public void setText(CharSequence text, BufferType type) {
SpannableString content = new SpannableString(text);
content.setSpan(new UnderlineSpan(), 0, content.length(), 0);
super.setText(content, type);
}
}
Y cómo usarlo en xml:
<com.myapp.components.LinkTextView
android:layout_width="match_parent"
android:layout_height="wrap_content"
android:text="Hello World!" />
Para completar la respuesta de Bhavin. Por ejemplo, para agregar subrayado o redirección.
((TextView) findViewById(R.id.tv_cgu)).setText(Html.fromHtml(getString(R.string.upload_poi_CGU)));
<string name="upload_poi_CGU"><![CDATA[ J/'accepte les <a href="">conditions générales</a>]]></string>
y puede saber la etiqueta compatible aquí: http://commonsware.com/blog/Android/2010/05/26/html-tags-supported-by-textview.html
Puede usar el marcado a continuación, pero tenga en cuenta que si establece textAllCaps
en true
, se eliminará el efecto de subrayado.
<resource>
<string name="my_string_value">I am <u>underlined</u>.</string>
</resources>
Nota
Usar textAllCaps con una cadena (login_change_settings) que contiene marcado; el marcado se eliminará por la conversión de mayúsculas
La transformación de texto textAllCaps terminará llamando aString en CharSequence, que tiene el efecto neto de eliminar cualquier marcado como. Esta comprobación busca usos de cadenas que contengan marcado que también especifique textAllCaps = true.
Si está utilizando un archivo xml de recurso de cadena (admite etiquetas HTML), puede hacerlo utilizando <b> </b>
, <i> </i>
y <u> </u>
.
<resources>
<string name="your_string_here">
This is an <u>underline</u>.
</string>
</resources>
Si desea subrayar algo del uso del código:
TextView tv = (TextView) view.findViewById(R.id.tv);
SpannableString content = new SpannableString("Content");
content.setSpan(new UnderlineSpan(), 0, content.length(), 0);
tv.setText(content);
Espero que esto ayude
Utilicé el método a continuación, es un trabajo para mí. a continuación se muestra un ejemplo para Button, pero también podemos usarlo en TextView.
Button btnClickMe= (Button) findViewById(R.id.btn_click_me);
btnClickMe.setPaintFlags(btnClickMe.getPaintFlags() | Paint.UNDERLINE_TEXT_FLAG);
Utilizar esta:
TextView txt = (TextView) findViewById(R.id.Textview1);
txt.setPaintFlags(txt.getPaintFlags() | Paint.UNDERLINE_TEXT_FLAG);
<resource>
<string name="your_string_here">This is an <u>underline</u>.</string>
</resources>
Si no funciona, entonces
<resource>
<string name="your_string_here">This is an <u>underline</u>.</string>
Porque "<" podría ser una palabra clave en algún momento.
Y para mostrar
TextView textView = (TextView) view.findViewById(R.id.textview);
textView.setText(Html.fromHtml(getString(R.string.your_string_here)));