2012-11-28 13 views
11

Gösterilecek verilere bağlı olarak bazen bir metin görünümünün yazı tipini italik olarak değiştirmek istediğim bir uygulama yapıyorum. Benim Galaxy Nexus üzerinde Typeface.ITALIC, Galaxy Note 2 üzerinde çalışmıyor Not

, sadece

textView.setTypeface(font, iWantItalics ? Typeface.ITALIC : Typeface.NORMAL); 

bir olgu ve güzel çalışıyor. Sorun şu ki test etmek ve ... nope, no italics için yeni bir Galaxy Note II var.

Okuma Samsung devices supporting setTypeface(Typeface.Italic)? Not: Android'in yapısında bir hata olduğu izlenimini edinir, bu nedenle Roboto yazı tipinin hiçbir italik değeri yoktur. Bu iş parçacığı ve benzerleri (Typeface.defaultFromStyle(Typeface.ITALIC), Typeface.create(null, Typeface.ITALIC), vb.) Ile ilgili her türlü öneriyi şanssız olarak denedim.

Benim sorun olduğunu iplikten adam assets dizinde Roboto TTF kopyalama ve onların telefonlarında başka varsayılan yazı tipi olan kişiler hakkında oradan yazı ama ne oluşturduğunu kullanılan geçici çözüm bu mu? Roboto'yu üzerlerinde zorlamak ya da daha da kötüsü, yazı tipi normalken ve başka bir deyişle Roboto italik olduğunda diğer yazı tipine sahip olmak istemiyorum.

Benim için bir fikrim var mı? Teşekkürler.

+0

sana başvurulan soru yarattı. Değeri için doğru çalışmayan cihazlarla uğraşmak için başka bir yol bulamadım. Kötü haber için üzgünüm. Umarım birileri daha iyi bir çözümle öne çıkarlar umarım =) – FoamyGuy

+0

Böylesine aptalca bir böceğin bu kadar yüksek kalitede ve yepyeni bir cihazda olması inanılmaz bir şey değil mi? – Serandel

+0

Samsung forumlarında bir geliştiricinin dikkatini çekiyorum, bu yüzden umut var. :) http://developer.samsung.com/forum/thread/typefaceitalic-not-working-on-galaxy-note-2/77/209984 – Serandel

cevap

14

bu hata için bir çözüm olarak, metin italik (kırık Samsung cihazlarında çalışacak gibi görünüyor) bu şekilde ayarlayabilirsiniz:

textView.setText(setTextStyleItalic(textView.getText()); 

ve bu yöntemi gerekir:

public static CharSequence setTextStyleItalic(CharSequence text) { 
    final StyleSpan style = new StyleSpan(Typeface.ITALIC); 
    final SpannableString str = new SpannableString(text); 
    str.setSpan(style, 0, text.length(), 0); 
    return str; 
} 
+0

Bir çekicilik gibi çalışır. İyi iş! – Serandel

4

Başka kolay çözüm bu gibi yapmaktır:

myTextView.setText(Html.fromHtml("<i>" + myString + "</i>"));