21 Mart 2018 Çarşamba

SpannableString Sınıfı

Giriş
Şu satırları dahil ederiz.
import android.text.Spannable;
import android.text.SpannableString;
Spannable arayüzünden kalıtır. setSpan() metodu ile yerlere ImageSpan, StyleSpan,UnderlineSpan gibi farklı özellikler verebilmeyi sağlar.

Kullanım
Şöyle yaparız.
TextView tv = (TextView) view.findViewById(R.id.tv);
SpannableString ss = ..;
...
tv.setText (content);
Şöyle yaparız.
EditText edt = (EditText )findViewById(R.id.tv);
Spannable ss = ...
...
edt.setText (ss);
constructor
Şöyle yaparız.
SpannableString ss = new SpannableString("..."); 
setSpan metodu - AlignmentSpan
Belirtilen aralığı sağa yaslamak için şöyle yaparız.
ss.setSpan((new AlignmentSpan.Standard(Alignment.ALIGN_OPPOSITE),3,5,
  Spannable.SPAN_EXCLUSIVE_EXCLUSIVE);
setSpan metodu - DynamicDrawableSpan
Örnek
Şöyle yaparız.
Drawable arrow = ContextCompat.getDrawable(this, R.drawable.ic_arrow);

SpannableString ss = new SpannableString("A*B");
ss.setSpan(new ImageSpan(arrow, DynamicDrawableSpan.ALIGN_BASELINE), 1, 2,
  Spannable.SPAN_EXCLUSIVE_EXCLUSIVE);
setSpan metodu - ForegroundColorSpan
Farklı bir renkte metin yazmak için kullanılır. Şöyle yaparız.
ss.setSpan(new ForegroundColorSpan(Color.BLUE), 15, 30, 
                   Spannable.SPAN_EXCLUSIVE_EXCLUSIVE);
ss.setSpan(new ForegroundColorSpan(Color.RED), 5, 10, 
                   Spannable.SPAN_EXCLUSIVE_EXCLUSIVE);
setSpan metodu - ImageSpan
Örnek
0. karaktere resim yerleştirir. Şöyle yaparız.
ImageSpan imageSpan = ...;
ss.setSpan (imageSpan, 0, 1, Spannable.SPAN_EXCLUSIVE_EXCLUSIVE);
Örnek
Şöyle yaparız. [0-2] aralığına resim yerleştirir.
ImageSpan span = ...; 
ss.setSpan(span, 0, 3, Spannable.SPAN_INCLUSIVE_EXCLUSIVE); 
setSpan metodu - RelativeSpan
Örnek
Şöyle yaparız.
SpannableString ss = new SpannableString("A" + "\u2192" + "B");
ss.setSpan(new RelativeSizeSpan(2f), 1, 2, 0);
textView.setText(ss);
setSpan metodu - StyleSpan
Şöyle yaparız.
ss.setSpan(new StyleSpan(Typeface.BOLD), 15, 30,
  Spanned.SPAN_EXCLUSIVE_EXCLUSIVE);
setSpan metodu - UnderlineSpan
Şöyle yaparız.
ss.setSpan (new UnderlineSpan(), 0, ss.length(), 0);




Hiç yorum yok:

Yorum Gönder