Merhaba Arkadaşlar,
Android ve ios uygulama geliştirme dersleri anlattığımız mobilhanem.com sitemiz üzerinden bu dersimizde, Android SpannableString ve ClickableSpan kullanımını anlatmaya çalışacağız ve Android Ders yayınlamaya ara vermeden devam edeceğiz
.
Android uygulama geliştirirken olmazsa olmazlardan biri Textview ve String kullanımıdır.Daha önce uygulama geliştiren arkadaşlar bilirler, Textview bir string’i uygulamada kullanıcıya göstermek için kullanılır ve en temel android bileşenidir diyebiliriz.
Biz bu dersimizde Android Textview kullanımını anlatmayacağız. Zaten bu dersimizi inceliyorsanız Textview kullanımını çok iyi biliyorsunuz demektir. Peki nedir bu SpannableString ve ClickableSpan ve nerede kullanılır.
SpannableString’i şöyle açıklayabilirim. Bir string’niz var ve bu stringin belli bir kısmını altı çizili, bold, italic, farklı renkte,background’nı farklı renkte vs. yapmak istiyorsunuz. Bunu farklı farklı stringlere bölüp farklı farklı textviewlere koyarak yapabilirsiniz. Ama bu yol hem fazla zahmetli hemde iyi bir yöntem değil. İşte burada yardımımıza SpannableString yetişiyor. SpannableString ile istediğimiz karakterden başlayıp istediğimiz karektere kadar stringimizi şekillendirebiliyoruz.
SpannableString – ClickableSpan
Bunu nasıl yapıyoruz aşağıdaki kod ile anlatmaya çalıştım.
String st = “Taha Kırca Mobilhanem.com sitesi kurucu yazarı. iOS ve Android developer. Ayrıca kişisel blog sitesi tahakirca.com ‘dur.”;
SpannableString ss = new SpannableString(st);
ss.setSpan(new StyleSpan(Typeface.BOLD), 11,25, 0);
String st = “Taha Kırca Mobilhanem.com sitesi kurucu yazarı. iOS ve Android developer. Ayrıca kişisel blog sitesi tahakirca.com ‘dur.”;
SpannableString ss = new SpannableString(st); ss.setSpan(new StyleSpan(Typeface.BOLD), 11,25, 0); |
Yukarıdaki kodda elimizdeki stringin 11. karakteri ile 25. karakteri arasındaki yani “mobilhanem.com” kısmını bold yaptık.
Peki sadece bold mu yapabiliyoruz.Hayır yapabildiğimiz bir kaç style aşağıdaki gibi listeleyebiliriz.
ss.setSpan(new StrikethroughSpan(), 11,25, 0);//üzeri çizgili
ss.setSpan(new StyleSpan(Typeface.BOLD), 11,25, 0); //BOLD
ss.setSpan(new UnderlineSpan(), 13, 23, 0);//Altı çizili
ss.setSpan(new StyleSpan(Typeface.ITALIC), 25, 31, 0);//italic
ss.setSpan(new ForegroundColorSpan(Color.GREEN), 48, 55, 0); //text rengi
ss.setSpan(new BackgroundColorSpan(Color.CYAN), 57, 68, 0); //backgroud rengi
ss.setSpan(new SuperscriptSpan(), 72, 83, 0); //Bir tık yukarı alır
ss.setSpan(new SubscriptSpan(), 87, 96, 0);//Bir tık aşağı alır
ss.setSpan(new RelativeSizeSpan(2f), 0, 5, 0); //Yazıyı büyütür
ss.setSpan(new URLSpan(“http://www.mobilhanem.com”), 98, 101, 0); //Webview için tıklanabilir
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 |
ss.setSpan(new StrikethroughSpan(), 11,25, 0);//üzeri çizgili
ss.setSpan(new StyleSpan(Typeface.BOLD), 11,25, 0); //BOLD
ss.setSpan(new UnderlineSpan(), 13, 23, 0);//Altı çizili
ss.setSpan(new StyleSpan(Typeface.ITALIC), 25, 31, 0);//italic
ss.setSpan(new ForegroundColorSpan(Color.GREEN), 48, 55, 0); //text rengi
ss.setSpan(new BackgroundColorSpan(Color.CYAN), 57, 68, 0); //backgroud rengi
ss.setSpan(new SuperscriptSpan(), 72, 83, 0); //Bir tık yukarı alır
ss.setSpan(new SubscriptSpan(), 87, 96, 0);//Bir tık aşağı alır
ss.setSpan(new RelativeSizeSpan(2f), 0, 5, 0); //Yazıyı büyütür
ss.setSpan(new URLSpan(“http://www.mobilhanem.com”), 98, 101, 0); //Webview için tıklanabilir |
Evet yukarda birkaç kullanımından bahsettim. Çok daha fazla kullanımı mevcuttur. Sizlerde araştırarak bulabilirsiniz.
Peki stringimize istediğimiz biçimi verdik ama tıklanabilirlik özelliğini eklemedik. Stringimize tıklanabilirlik özelliği verebilmemiz için ClickableSpan kullanıyoruz. Stringimizin istediğimiz bir kısmına tıklanınca bir methodu tetikleyebiliriz.Aşağıdaki kodda bunu anlatmaya çalıştım.
String st = “Taha Kırca Mobilhanem.com sitesi kurucu yazarı. iOS ve Android developer. Ayrıca kişisel blog sitesi tahakirca.com ‘dur.”;
SpannableString ss = new SpannableString(st);
ClickableSpan clickableSpan = new ClickableSpan() {
@Override
public void onClick(View textView) {
Toast.makeText(getApplicationContext(), “Tıklandı”, Toast.LENGTH_LONG).show();
}
@Override
public void updateDrawState(TextPaint ds) {
super.updateDrawState(ds);
ds.setUnderlineText(true);
}
};
ss.setSpan(clickableSpan, 101,115, 0);
String st = “Taha Kırca Mobilhanem.com sitesi kurucu yazarı. iOS ve Android developer. Ayrıca kişisel blog sitesi tahakirca.com ‘dur.”; SpannableString ss = new SpannableString(st); ClickableSpan clickableSpan = new ClickableSpan() { @Override public void onClick(View textView) { Toast.makeText(getApplicationContext(), “Tıklandı”, Toast.LENGTH_LONG).show(); } @Override public void updateDrawState(TextPaint ds) { super.updateDrawState(ds); ds.setUnderlineText(true); } }; ss.setSpan(clickableSpan, 101,115, 0); |
Evet arkadaşlar bugünkü android ders‘imizde sizlere SpannableString ve ClickableSpan’ı anlatmaya çalıştık. Mobil uygulama geliştirme konusunda sizlere yardımcı olmaya çalışıyor ve çalışacağız. Umarım faydalı oluyordur.Bir sonraki dersimde görüşmek dileğiyle.
Kaynak : http://www.programcreek.com/java-api-examples/android.text.SpannableString
Tüm Android Ders, Proje ve Kaynak Kodlar için tıklayınız.
0