2012-01-19 18 views

risposta

18

Sì perché no, è possibile ottenere il tipo di carattere Roboto:

Android ICS typography

Diciamo che si desidera modificare il carattere di una visione del testo:

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

C'è un modo per impostare questa proprietà di carattere tipografico nell'XML stesso? O più semplicemente, nello stesso AndroidManifest.xml, da utilizzare su tutta l'app? – Rahim

+1

Non ho trovato alcun modo per fare questo, quindi ho finito con questo http://stackoverflow.com/questions/9797872/use-roboto-font-for-earlier-devices/10563831#10563831 – Arnaud

-2

È possibile applicare specifici stili in Android che consentono di modificare il carattere ecc. Controllare questo collegamento al sito sviluppatore Android. Styles and Themes

+0

Perché era questo downvoted? – tier1

1

per impostare il tipo di carattere in XML è moderatamente uno sforzo maggiore, ma ha il vantaggio di essere in grado di visualizzare in anteprima il carattere all'interno scheda layout grafico di Eclipse ADT del layout editor XML. Anche in questo caso, per prima cosa includere il file .ttf del carattere personalizzato nella cartella delle risorse dell'applicazione.

Creare una classe TextView personalizzato:

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

Ora per includere questo TypefacedTextView personalizzato nel tuo layout XML semplicemente aggiungere il tuo attributo namespace XML di sotto del Android attributo namespace XML:

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

e usare il vostro TypefacedTextView come se fosse un normale TextView in XML ma con il tuo tag personalizzato, ricordando di impostare il font:

<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" /> 

Vedi il mio post sul blog per ulteriori informazioni: http://polwarthlimited.com/2013/05/android-typefaces-including-a-custom-font/

+0

404 sul link nella risposta – harmanjd

Problemi correlati