2012-01-19 15 views

Odpowiedz

18

Tak, dlaczego nie można dostać czcionkę Roboto:

Android ICS typography

Powiedzmy, że chcesz zmienić czcionkę w widoku tekstu:

Typeface tf = Typeface.createFromAsset(getAssets(), 
      "fonts/Roboto-Black.ttf"); 
    TextView tv = (TextView) findViewById(R.id.FontTextView); 
    tv.setTypeface(tf); 
+6

Czy istnieje sposób na ustawienie tej właściwości kroju pisma w samym pliku XML? A może po prostu, w samym AndroidManifest.xml, do korzystania z całej aplikacji? – Rahim

+1

Nie znalazłem żadnego sposobu, aby to zrobić, więc skończyłem z tym http://stackoverflow.com/questions/9797872/use-roboto-font-for-earlier-devices/10563831#10563831 – Arnaud

-2

Możesz zastosować określone style w Androidzie, które pozwalają zmienić czcionkę itp. Sprawdź ten link do strony dla programistów Androida. Styles and Themes

+0

Dlaczego ten downvoted? – tier1

1

aby ustawić czcionkę w XML jest umiarkowanie więcej wysiłku, ale ma tę zaletę, że jest w stanie wyświetlić podgląd czcionki wewnątrz graficznego karty układu Eclipse ADT za edytora układu XML. Ponownie najpierw umieść niestandardowy plik czcionki .ttf w folderze zasobów aplikacji.

Tworzenie niestandardowej klasy TextView:

public class TypefacedTextView extends TextView 
{ 
public TypefacedTextView(Context context, AttributeSet attrs) 
{ 
    super(context, attrs); 

    // Typeface.createFromAsset doesn't work in the layout editor. Skipping ... 
    if (isInEditMode()) 
    { 
    return; 
    } 

    TypedArray styledAttrs = context.obtainStyledAttributes(attrs, R.styleable.TypefacedTextView); 
    String fontName = styledAttrs.getString(R.styleable.TypefacedTextView_typeface); 
    styledAttrs.recycle(); 

    if (fontName != null) 
    { 
    Typeface typeface = Typeface.createFromAsset(context.getAssets(), fontName); 
    setTypeface(typeface); 
    } 
    } 
    } 

Teraz włączenie tej niestandardowej TypefacedTextView w układach XML wystarczy dodać atrybut przestrzeni nazw XML poniżej Android atrybutu przestrzeni nazw XML:

<LinearLayout xmlns:android="http://schemas.android.com/apk/res/android" 
    xmlns:your_namespace="http://schemas.android.com/apk/res/com.example.app" 
... /> 

i użytkowaniu TypefacedTextView jak zwykły TextView w XML, ale z własnym niestandardowym tagiem, pamiętając o ustawieniu czcionki:

<com.example.app.TypefacedTextView 
    android:id="@+id/list_item_entry_title" 
    android:layout_width="wrap_content" 
    android:layout_height="wrap_content" 
    android:gravity="center_vertical" 
    android:minHeight="48dp" 
    android:textColor="#FF787878" 
    your_namespace:typeface="Roboto-Regular.ttf" /> 

Patrz mój post na blogu o więcej informacji: http://polwarthlimited.com/2013/05/android-typefaces-including-a-custom-font/

+0

404 link w odpowiedzi – harmanjd

Powiązane problemy