Skip to main content

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);  
 }

}

Comments

  1. how to remove link underline in above example?

    ReplyDelete

Post a Comment

Popular posts from this blog

Passing Images between Activities in Android

in First Activity:
Intent intent=new Intent(FirstClass.this, SecondClass.class); Bundle bundle=new Bundle(); bundle.putInt("image",R.drawable.ic_launcher); intent.putExtras(bundle); startActivity(intent); in Second Acticity:
Bundle bundle=this.getIntent().getExtras(); int pic=bundle.getInt("image"); v.setImageResource(pic);another method:
in First Activity:
Drawable drawable=imgv.getDrawable(); Bitmap bitmap= ((BitmapDrawable)drawable).getBitmap(); ByteArrayOutputStream baos = new ByteArrayOutputStream(); bitmap.compress(Bitmap.CompressFormat.PNG, 100, baos); byte[] b = baos.toByteArray(); Intent intent=new Intent(Passimage.this,myclass.class); intent.putExtra("picture", b); startActivity(intent); in Second Acticity:
Bundle extras = getIntent().getExtras(); byte[] b = extras.getByteArray("picture"); Bitmap bmp = BitmapFactory.decodeByteArray(b, 0, b.length); Image…

Get a single record from SQLite in ANDROID

For COMPLETE TUTORIALS see here :
in DATABASE HELPER class: String[] coloumns = new String[] { KEY_ROWID, KEY_NAME, KEY_NICKNAME }; // calling elements in an array Cursor c = db.query(DATABASE_TABLE, coloumns, KEY_ROWID + "=" + l,null, null, null, null); if (c != null) { c.moveToFirst(); String name = c.getString(1); // since name is in position 1 ie second coloumn return name; } return null; in sqlite.java : String s =editinfo.getText().toString(); long l=Long.parseLong(s); DBAdapter adapter=new DBAdapter(SQliteExample.this); adapter.open(); String returnedname=adapter.returnName(l); String returnednickname=adapter.returnickname(l); adapter.close(); editName.setText(returnedname); editNickName.setText(returnednickname);

TextView Animation or Alpha animation (FadeIn , FadeOut) in ANDROID

An Alpha Animation is animation that controls the alpha level of an object, i.e. fading it in and out. In Android, you can apply that fading effect to almost anything, from simple text, to images, buttons, check boxes, etc…

This can be done both from xml and from java class.

Here I will explain a simple way to give a FadeIn and FadeOut for a textview on button click.. public class Textviewanimation extends Activity { Animation fadeIn,fadeOut; TextView tv; Button startanimation; Boolean fadeflag=true; @Override public void onCreate(Bundle savedInstanceState) { super.onCreate(savedInstanceState); setContentView(R.layout.activity_textviewanimation); tv=(TextView) findViewById(R.id.textview); startanimation=(Button) findViewById(R.id.button1); fadeIn = new AlphaAnimation(0.0f , 1.0f ) ; fadeIn.setDuration(1200); fadeIn.setFillAfter(true); fadeOut = new AlphaAnimation(1.0f , 0.0f); fadeOut.setDurati…