2012-11-28 6 views
11

표시 할 데이터에 따라 때때로 텍스트보기의 글꼴을 기울임 꼴로 변경하려는 앱을 만들고 있습니다. 내 갤럭시 넥서스에 Typeface.ITALIC이 갤럭시 노트 2에서 작동하지 않습니다.

, 그것은 단순히

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

의 사건과 아름답게 작동합니다.

문제는 테스트 할 새 Galaxy Note II가 있고 ... 이탤릭이 아닙니다.

독서 Samsung devices supporting setTypeface(Typeface.Italic)? Robot 글꼴에 기울임 꼴 글꼴이 없도록 메모의 Android 빌드에 버그가 있다는 인상을받습니다. 행운을 빌어 그 스레드와 비슷한 다른 것들 (Typeface.defaultFromStyle(Typeface.ITALIC), Typeface.create(null, Typeface.ITALIC) 등)에 대한 모든 조언을 시도했습니다.

내 문제는 스레드에서 사람이 assets 디렉토리에 Roboto로 TTF를 복사하여 자신의 휴대 전화에 다른 기본 글꼴을 가진 사람에 대한 거기에서 글꼴하지만를 생성하고 사용하는 해결 방법이? 저는 Roboto를 강제로 사용하거나, 더 나쁜 경우에는 서체가 정상이고 Roboto가 그렇지 않은 경우 다른 글꼴을 사용하는 것을 원하지 않습니다.

나를위한 아이디어가 있습니까? 감사.

+0

나는 당신이 참조한 질문을 만들었습니다. 그만한 가치가 있었기 때문에 제대로 작동하지 않는 장치를 다루는 다른 방법을 찾지 못했습니다. 나쁜 소식에 대해 죄송합니다. 나는 누군가가 더 나은 해결책을 가지고 앞으로 나아갈 것을 희망한다.) – FoamyGuy

+0

그런 하이 엔드 및 새로운 디바이스에 그렇게 어리석은 버그가있는 것은 놀라운 일 아닌가? – Serandel

+0

삼성 포럼에서 개발자의 주목을 받았기 때문에 희망이 있습니다. :) http://developer.samsung.com/forum/thread/typefaceitalic-not-working-on-galaxy-note-2/77/209984 – Serandel

답변

14

이 버그에 대한 해결 방법으로, 당신은 텍스트 기울임을 (깨진 삼성 장치에서 작동하는 것 같다) 이런 식으로 설정할 수 있습니다

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

을하고이 방법이 필요합니다

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

매력처럼 작동합니다. 잘 했어! – Serandel

4

또 다른 쉬운 해결책은 다음과 같이하는 것입니다.