Skip to content Skip to sidebar Skip to footer

How To Convert Part Of A String To Italics?

I want to make animal.getScientificName as Italics(code below). I'm using a List View and setting the text in the listview. I wan't only part of the Text view to be in Italics, Is

Solution 1:

You can accomplish this using spans on your text (to expand here on the correct answer in comment by Georgian Benatos).

Here is a related question, and the answers show you exactly how to do this:

Specifically some sample code in the answer provided by Raghunandan

String title="My Custom Text!";  
TextViewtv= (TextView) findViewById(R.id.some_id);
SpannableString ss1=  newSpannableString(title);
ss1.setSpan(newStyleSpan(Typeface.ITALIC), 0, ss1.length(), 0);
ss1.setSpan(newRelativeSizeSpan(2f), 0, ss1.length, 0); 
tv.setText(ss1);

Spans are a very useful feature - they can be used for various common text styles:

  • italics
  • bold
  • underline
  • bullets

To have a look at the wide range of spans available, take a look at the Android developers page for the android.text.style package:

Solution 2:

use Html.fromHtml:

listNames[ i ] = animal.getName().toUpperCase().replaceAll( "_" , " " ) + " \n\n" + "<em>+animal.getScientificName()+</em>"; 


array_sort = new ArrayList( Arrays.asList( listNames) ); 
tv.setText(Html.fromHtml(array_sort.get( position ) ));

for more info, refer this

Solution 3:

I would recommend using two TextViews, because it is impossible to have two different text-styles in one TextView.

Just place them both under each other, and assign the correct String value to the TextView.

tv1.setText(animal.getName().toUpperCase().replaceAll( "_" , " " );
tv2.setText(animal.getScientificName();

And for example, you can use this layout in your ListView item:

<?xml version="1.0" encoding="utf-8"?><LinearLayoutxmlns:android="http://schemas.android.com/apk/res/android"android:orientation="vertical"android:layout_width="match_parent"android:layout_height="match_parent"><TextViewandroid:layout_width="match_parent"android:layout_height="match_parent"android:id="@+id/tv1" /><TextViewandroid:layout_width="match_parent"android:layout_height="match_parent"android:id="@+id/tv2"android:textStyle="italic" /></LinearLayout>

Post a Comment for "How To Convert Part Of A String To Italics?"