2012-11-04 44 views
6

Tôi đang cố sử dụng phông chữ tùy chỉnh trên TextView. Các văn bản TextView được thiết lập với textView1.setText(Html.fromHtml(htmlText));Html ở chế độ xem văn bản với các phông chữ khác nhau để in đậm và in nghiêng

các html chứa đậm và nghiêng kéo dài

Now. Tôi đã mua một phông chữ tùy chỉnh. Phông chữ đi kèm với 3 tệp khác nhau (ttf). Một cho thường xuyên, một đậm và nghiêng.

Làm cách nào để áp dụng ba tệp phông chữ đó cho chế độ xem văn bản?

Trả lời

2

Liên kết này sẽ giúp bạn thấy làm thế nào để tùy chỉnh phông chữ android: http://mobile.tutsplus.com/tutorials/android/customize-android-fonts/

Trong đó quan tâm làm thế nào để áp dụng những file font vào TextView, bạn cần phải tích hợp chúng đầu tiên trong dự án của bạn:

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

các tập tin ttf nên được đặt trong -> tài sản/fonts/xxx.TTF

Tất cả cần chi tiết có trong đoạn: "Sử dụng Custom Fonts"

+1

Sử dụng tệp phông chữ đơn chứa các kiểu khác nhau (Thông thường, Đậm, Nghiêng, vv) rất dễ dàng. Vấn đề là với phông chữ trong đó mỗi kiểu nằm trong tệp khác nhau (ví dụ: font_regular.ttf, font_bold.ttf, font_italic.ttf). Sử dụng 'setTypeface' chỉ có thể đặt một kiểu chữ, do đó chỉ có thể sử dụng một kiểu. Những gì [Eli Konky] (http://stackoverflow.com/users/102092/eli-konky) và tôi cần là sử dụng một số tệp phông chữ với một TextView. – suda

+1

Theo điều này: http://stackoverflow.com/questions/10191510/android-combining-multiple-font-styles-into-one-single-font-typeface và thực tế là setTypeface() sẽ thay thế tệp ttf mặc định , được sử dụng bởi android, bởi tệp ttf tùy chỉnh của bạn: cách duy nhất (cho thời điểm này) sử dụng các phông chữ khác nhau cho một chế độ xem văn bản đơn giản là hợp nhất các phông chữ đó theo cách thủ công trong một tệp ttf. Điều này có thể được thực hiện bằng cách sử dụng một trình soạn thảo phông chữ (như http://sourceforge.net/projects/ttfedit/). Hy vọng nó giúp. –

+2

Tôi không thấy tùy chọn hợp nhất hai tệp trong TTFEdit (hoặc bất kỳ phần mềm chỉnh sửa phông chữ nào khác mà tôi đã thử nghiệm). Bạn phải đặt câu hỏi về việc hợp nhất các tệp phông chữ :) – suda

0

Tôi tưởng tượng bạn muốn làm một trình cấu trúc lại nhanh chóng trên mã của bạn để kết hợp các tài sản.

Tôi sẽ mở rộng TextView và cố gắng phân tích cú pháp HTML và áp dụng kiểu chữ thích hợp khi onDraw.

Ghi đè setText và phân tích cú pháp tham số tạo Bản đồ cho ký tự và kiểu chữ thích hợp sẽ được sử dụng.

Sau đó, ghi đè onDraw và trước khi vẽ, thay đổi kiểu chữ của super.getPaint() theo Bản đồ bạn đã tạo ở bước trước đó.

Mã phải giống như được trình bày theo phương pháp onDraw từ How to correctly draw text in an extended class for TextView?, tuy nhiên bạn sẽ đặt kiểu chữ được xác định trước thay vì áp dụng super.getTypeface().

Hy vọng nó sẽ giúp bạn

0

Bạn đã thử áp dụng tất cả phông chữ đó cho cùng một văn bản của văn bản một. Tôi nghĩ rằng bạn có thể áp dụng hiệu ứng nhiều hơn cho cùng một TextView.

Mã của Milos là đúng. Ngoài ra tôi đã đưa ra giải thích của riêng tôi. Bạn có thể thêm phông chữ của mình vào nội dung foldera và sau đó bạn có thể áp dụng phông chữ đó cho textView từng cái một.

Không chắc chắn nhưng có thể hữu ích cho bạn.

Mã của tôi:

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); 

Hãy thoải mái bình luận và truy vấn.

+0

Vâng tôi đã làm. Rất tiếc, mọi cuộc gọi tới setTypeface đều ghi đè lên cuộc gọi trước đó. – suda

+0

Ok sau đó bạn phải làm theo với câu trả lời của Milos. Bạn phải tạo một phông chữ bao gồm tất cả những thứ bạn muốn và sau đó đặt nó vào Chế độ xem chỉ định. –

Các vấn đề liên quan