Friday, 14 June 2013

Spannable String in Android - URL Span ,Clickable Span, Rich-Style Formatting of Textview .....

See more Android Tutorials here.......

Faster Loading images in GridViews or ListViews

Spannable brings lots of possibility to TextView, includes displaying various appearance of a Text and onClick callbak.
The SpannableString class allows you to easily format certain pieces which are called spans of a string, by applying CharacterStyle ie,color, font, ormake it a link .
Here is an example where, explained how to use spannable string to give font size, color, linking a text via clickable span and through URL Span and to strike through the text.
Lets go through the example :
import android.os.Bundle;
import android.text.SpannableString;
import android.text.method.LinkMovementMethod;
import android.text.style.ClickableSpan;
import android.text.style.ForegroundColorSpan;
import android.text.style.RelativeSizeSpan;
import android.text.style.StrikethroughSpan;
import android.text.style.URLSpan;
import android.view.View;
import android.widget.TextView;
import android.widget.Toast;
import android.widget.TextView.BufferType;
import android.app.Activity;                        
import android.graphics.Color;  
 
public class Spannable_String extends Activity {

 @Override
 protected void onCreate(Bundle savedInstanceState) {
  super.onCreate(savedInstanceState);
  setContentView(R.layout.activity_spannable__string);
  
  TextView spannabletextview = (TextView)findViewById(R.id.usage);
  
     //********* Simple Span to color text ************// 
  // this is the text that we going to work on
     SpannableString text = new SpannableString("Iam an example for spannable string ");
     // make "Iam" (characters 0 to 3) green
     text.setSpan(new ForegroundColorSpan(Color.BLUE), 0, 3, 0);
     // Put the SpannableString in textview
     
     //**** Relative Span to change text relative to others  ****//
     //changing the text from 5 to 9 1.5f bigger than textview size  
  text.setSpan(new RelativeSizeSpan(1.5f), 5, 9, 0);
  
  //************ Clickable Span **************//
  // going to make "for" a clickable text and bring a toast
  ClickableSpan clickfor = new ClickableSpan() {
   
   @Override
   public void onClick(View widget) {
             Toast.makeText(Spannable_String.this, "hello clicked for", Toast.LENGTH_LONG).show();    
   }
  };
  text.setSpan(clickfor, 15, 18, 0);
  
  //******** Strike through text***********//
     text.setSpan(new StrikethroughSpan(), 9, 14, 0);
     //******** URL Span *********************//
     text.setSpan(new URLSpan("http://eazyprogramming.blogspot.in/"), 22, 26, 0);
     //******** ForegroundColor *********************//
     text.setSpan(new ForegroundColorSpan(Color.GREEN), 22, 26, 0);
     // make our ClickableSpans and URLSpans work
     spannabletextview.setMovementMethod(LinkMovementMethod.getInstance());
  
     spannabletextview.setText(text, BufferType.SPANNABLE);  
 }

}

1 comment:

  1. how to remove link underline in above example?

    ReplyDelete