2012-11-04 14 views
6

Próbuję użyć niestandardowej czcionki na TextView. Tekst TextView jest ustawiony z textView1.setText(Html.fromHtml(htmlText));Html w widoku tekstowym z różnymi czcionkami pogrubieniem i kursywą

HTML zawiera pogrubienie i kursywa obejmuje

teraz. Kupiłem niestandardową czcionkę. Czcionka jest dostarczana z 3 różnymi plikami (ttf). Jeden dla zwykłego, pogrubionego i kursywy.

Jak zastosować te trzy pliki czcionek w widoku tekstowym?

Odpowiedz

2

Ten link pozwoli Ci zobaczyć, jak dostosować android czcionki: http://mobile.tutsplus.com/tutorials/android/customize-android-fonts/

na którym kwestie jak stosować te pliki czcionek do TextView, trzeba zintegrować je najpierw w projekcie:

Typeface tf = Typeface.createFromAsset(this.getAssets(), 
     "fonts/xxx.TTF"); 
txt1.setTypeface(tf); 

plik TTF powinny być umieszczone w -> aktywa/fonts/xxx.TTF

Wszystkie potrzebne informacje są w paragrafie: "Korzystanie z niestandardowych czcionek"

+1

Używanie jednego pliku czcionki zawierającego różne style (zwykły, pogrubiony, kursywa itp.) Jest łatwe. Problem dotyczy czcionek, w których każdy styl znajduje się w innym pliku (np. Font_regular.ttf, font_bold.ttf, font_italic.ttf). Użycie 'setTypeface' może ustawić tylko jedną czcionkę, dlatego można użyć tylko jednego stylu. Co [Eli Konky] (http://stackoverflow.com/users/102092/eli-konky) i potrzebuję użyć kilku plików czcionek z pojedynczym tekstem. – suda

+1

Zgodnie z tym: http://stackoverflow.com/questions/10191510/android-combining-multiple-font-styles-into-one-single-font-typeface oraz fakt, że setTypeface() zastąpi domyślny plik ttf , używane przez Androida, przez twój niestandardowy plik ttf: jedynym sposobem (na razie) na użycie różnych czcionek dla pojedynczego widoku tekstowego jest ręczne scalenie tych czcionek w jeden plik ttf. Można to zrobić za pomocą edytora czcionek (np. Http://sourceforge.net/projects/ttfedit/). Mam nadzieję, że to pomoże. –

+2

Nie widzę opcji łączenia dwóch plików w TTFEdit (lub innym oprogramowaniu do edycji czcionek, które przetestowałem). Musisz zadać pytanie o scalanie plików czcionek :) – suda

0

Wyobrażam sobie, że chcesz zrobić szybki refaktor na swoim kodzie w celu włączenia aktywów.

Chciałbym rozszerzyć TextView i spróbować przeanalizować HTML i zastosować odpowiedni krój czcionki w onDraw.

Pomiń setText i przeanalizuj parametr, tworząc Mapę znaków i odpowiedni krój pisma, który powinien zostać użyty.

Następnie należy zastąpić onDraw i przed rysowaniem zmienić krój czcionki super.getPaint() zgodnie z mapą utworzoną w poprzednim kroku.

Kod powinien wyglądać tak, jak ten przedstawiony w metodzie onDraw z How to correctly draw text in an extended class for TextView?, jednak zostanie ustawiony wcześniej określony krój czcionki zamiast stosowania super.getTypeface().

Nadzieja to pomaga

0

Czy spróbować z zastosowaniem że wszystkie czcionki tekstu do jednej i tej samej TextView o jeden. Myślę, że dzięki temu można zastosować większy efekt w tym samym TextView.

Kod Milosa ma rację. Ponadto mam własne wyjaśnienia. Możesz dodać swoje czcionki do foldera aktywów, a następnie możesz zastosować tę czcionkę do textView jeden po drugim.

Nie jestem pewien, ale może ci się przydać.

mój kod:

Typeface font1 = Typeface.createFromAsset(getAssets(), "YOUR_FONT1.ttf"); 
Typeface font2 = Typeface.createFromAsset(getAssets(), "YOUR_FONT2.ttf"); 
Typeface font3 = Typeface.createFromAsset(getAssets(), "YOUR_FONT3.ttf"); 

chips_text.setTypeface(font1); 
chips_text.setTypeface(font2); 
chips_text.setTypeface(font3); 

Zapraszam do komentowania i zapytań.

+0

Tak, zrobiłem. Niestety każde wywołanie setTypeface zastępuje poprzedni. – suda

+0

Ok, następnie musisz podążać za odpowiedzią Milosa. Musisz utworzyć jedną czcionkę, która zawiera wszystkie potrzebne elementy, a następnie ustawić ją w widoku szczegółów. –

Powiązane problemy