2012-02-21 56 views
6

Tôi muốn thay đổi phông chữ của chế độ xem văn bản từ Roboto thông thường thành roboto cô đặc. TextView nằm trong một Widget và vì vậy tôi đang sử dụng một RemoteView. Nếu nó là một ứng dụng, chúng ta có thể thiết lập nó bằng typeFace. Những gì tôi cần phải làm cho điều đó?Thay đổi phông chữ từ Roboto sang Roboto bình thường

Trả lời

3

tôi có câu trả lời ngay bây giờ. Những gì chúng tôi phải làm là hiển thị phông chữ trên canvas và sau đó chuyển nó vào một bitmap và gán nó cho một hình ảnh thu nhỏ

public Bitmap buildUpdate(String time) 
{ 
Bitmap myBitmap = Bitmap.createBitmap(160, 84, Bitmap.Config.ARGB_4444); 
Canvas myCanvas = new Canvas(myBitmap); 
Paint paint = new Paint(); 
Typeface clock = Typeface.createFromAsset(this.getAssets(),"robonto_condunced.ttf"); 
paint.setAntiAlias(true); 
paint.setSubpixelText(true); 
paint.setTypeface(clock); 
paint.setStyle(Paint.Style.FILL); 
paint.setColor(Color.WHITE); 
paint.setTextSize(65); 
paint.setTextAlign(Align.CENTER); 
myCanvas.drawText(time, 80, 60, paint); 
return myBitmap; 
} 
1

Bạn chỉ cần sử dụng kiểu chữ. Dưới đây là một ví dụ

private void setFonts() { // Setting all fonts 
    Typeface face = Typeface.createFromAsset(this.getAssets(), 
      "fonts/DroidSerif-Bold.ttf"); 
    mMonthTextView.setTypeface(face); 
    mAgeTextView.setTypeface(face); 
    mHeightAndWeightTextView.setTypeface(face); 

} 

Bạn phải đặt phông chữ trong tài sản/fonts/thư mục

+0

Tôi đang sử dụng RemoteView cho tiện ích con. Vì vậy, tôi không thể có được textview trực tiếp trong mã của tôi. Chúng ta không thể trực tiếp thiết lập kiểu phông chữ trong xml? – Kamalone

+0

Tôi nghĩ rằng điều đó là không thể. Chúng tôi chỉ có thể thay đổi kiểu in đậm hoặc in nghiêng. Nếu bạn muốn làm điều đó trong xml, bạn phải tạo một textview tùy chỉnh. Nhưng điều đó sẽ mất một thời gian để làm. –

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