En este artículo, aprenderemos cómo cambiar el color del texto de una substring de una string. Es fácil cambiar el color de toda la string, pero para cambiar el color de una substring, debemos usar una clase especial SpannableString . Pero la clase SpannableString no es realmente útil cuando se trata de cambiar el color de fondo del texto. Entonces, para eso, tenemos que usar la clase SpannableStringBuilder .
Acercarse:
- Agregue el siguiente código en el archivo activity_main.xml. Esto agregará dos vistas de texto en el diseño de actividad_principal.
actividad_principal.xml
<?
xml
version
=
"1.0"
encoding
=
"utf-8"
?>
<
LinearLayout
android:layout_width
=
"match_parent"
android:layout_height
=
"match_parent"
android:orientation
=
"vertical"
android:gravity
=
"center"
tools:context
=
".MainActivity"
>
<
TextView
android:id
=
"@+id/text_view"
android:layout_width
=
"wrap_content"
android:layout_height
=
"wrap_content"
android:layout_margin
=
"10dp"
android:textAlignment
=
"center"
android:text="GeeksForGeeks A
Computer Science Portal for Geeks"
android:textSize
=
"20sp"
/>
<
TextView
android:id
=
"@+id/text_view2"
android:layout_width
=
"wrap_content"
android:layout_height
=
"wrap_content"
android:layout_margin
=
"10dp"
android:textAlignment
=
"center"
android:text
=
"Learn Algorithm."
android:textSize
=
"20sp"
/>
</
LinearLayout
>
- Ahora agregue el siguiente código en el archivo MainActivity.java . En este código, cambiaremos el color de las substrings de la primera vista de texto con la clase SpannableString y agregaremos un color de fondo en la segunda vista de texto con SpannableStringBuilder . Cree los objetos de las clases con los textos que desea mostrar y use la función setSpan para cambiar el color de la substring.
MainActivity.java
package
org.geeksforgeeks.gfgspannablestring;
import
android.graphics.Color;
import
android.os.Bundle;
import
android.text.SpannableString;
import
android.text.SpannableStringBuilder;
import
android.text.Spanned;
import
android.text.style.BackgroundColorSpan;
import
android.text.style.ForegroundColorSpan;
import
android.widget.TextView;
import
androidx.appcompat.app.AppCompatActivity;
public
class
MainActivity
extends
AppCompatActivity {
@Override
protected
void
onCreate(Bundle savedInstanceState)
{
super
.onCreate(savedInstanceState);
setContentView(R.layout.activity_main);
TextView textView = findViewById(R.id.text_view);
TextView textView2 = findViewById(R.id.text_view2);
String text = "GeeksForGeeks A Computer
Science Portal
for
Geeks";
String text2 =
"Learn Algorithm."
;
SpannableString spannableString =
new
SpannableString(text);
// we can only use backgroundcolor
// span with a spannableStringBuilder.
SpannableStringBuilder spannableStringBuilder =
new
SpannableStringBuilder(text2);
// It is used to set foreground color.
ForegroundColorSpan green =
new
ForegroundColorSpan(Color.GREEN);
ForegroundColorSpan cyan =
new
ForegroundColorSpan(Color.CYAN);
// It is used to set background color.
BackgroundColorSpan yellow =
new
BackgroundColorSpan(Color.YELLOW);
// It is used to set the span to the string
spannableString.setSpan(green,
0
,
13
, Spanned.SPAN_EXCLUSIVE_EXCLUSIVE);
spannableString.setSpan(cyan,
40
,
43
, Spanned.SPAN_EXCLUSIVE_EXCLUSIVE);
spannableStringBuilder.setSpan(yellow,
0
,
16
, Spanned.SPAN_EXCLUSIVE_EXCLUSIVE);
textView.setText(spannableString);
textView2.setText(spannableStringBuilder);
}
}
Producción:
Publicación traducida automáticamente
Artículo escrito por madhavmaheshwarimm20 y traducido por Barcelona Geeks. The original can be accessed here. Licence: CCBY-SA