Autore Topic: [facile] Aggiungere un nuovo Font ad una TextView  (Letto 7224 volte)

Offline alepio

  • Utente normale
  • ***
  • Post: 163
  • Respect: +3
    • Google+
    • 107850838
    • Mostra profilo
  • Dispositivo Android:
    SAMSUNG ACE
  • Play Store ID:
    Alessandro Piola
  • Sistema operativo:
    WIN 7
[facile] Aggiungere un nuovo Font ad una TextView
« il: 13 Agosto 2010, 23:07:14 CEST »
+2
Livello di difficoltà: facile
Versione SDK utilizzata: 1.6

In Android sono presenti di default solamente 3 tipi di Font.

android:typeface
Typeface (normal, sans, serif, monospace) for the text.
Must be one of the following constant values.

In questo tutorial cercherò di spiegare come aggiungerne altri.

Il tutto risulta molto semplice ma poco discusso.
L'esempio tratta un font particolare il  Free 3 of 9 Barcode (free3of9.ttf Free Barcode Font - Code 39 - Not a demo, COMPLETELY free[/url]) che permette di generare un codice a barre.

Per prima cosa dobbiamo procuraci il Font ( file .ttf ) e copiarlo all'interno della cartella Assets
Ed aggiungere queste righe di codice al nostro file .java

Codice (Java): [Seleziona]
                        Typeface myTypeface = Typeface.createFromAsset(this.getAssets(),"FREE3OF9.TTF");        
                        TextView waitingTimeView = (TextView) findViewById(R.id.TextView01);
                        waitingTimeView.setTypeface(myTypeface);
                        waitingTimeView.refreshDrawableState();
                        waitingTimeView.setText("1234567890123");


In allegato il risultato


Sorgenti:

Codice (Java): [Seleziona]
package it.alessandropiola.Scanner;

import android.app.Activity;
import android.graphics.Typeface;
import android.os.Bundle;
import android.widget.TextView;

public class barcode extends Activity {
       
            /** Called when the activity is first created. */
            @Override
            public void onCreate(Bundle savedInstanceState) {
                        super.onCreate(savedInstanceState);
                        // Impostiamo il layout principale
                        setContentView(R.layout.barcode);
       
                        Typeface myTypeface = Typeface.createFromAsset(this.getAssets(),"FREE3OF9.TTF");       
                        TextView waitingTimeView = (TextView) findViewById(R.id.TextView01);
                        waitingTimeView.setTypeface(myTypeface);
                        waitingTimeView.refreshDrawableState();
                        waitingTimeView.setText("1234567890123");
            }
    }
Codice (XML): [Seleziona]
<?xml  version="1.0" encoding="utf-8"?>
<LinearLayout
       xmlns:android="[url]http://schemas.android.com/apk/res/android"
       android:layout_width="fill_parent"
       android:layout_height="fill_parent"
       android:orientation="vertical"
       android:gravity="center">
       

       

<TextView android:text="@+id/TextView01"
android:id="@+id/TextView01"
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:typeface="monospace"
android:textSize="60px">
</TextView>
</LinearLayout>

Ecco fatto! ;-) ;-)
-----------------------------------------------------
Con RISPARMIO BATTERIA - Battery Saver puoi anche dimenticarti a casa il carica batteria. Inoltre con gli EXTRAS puoi configurare la navigazione e disattivare i banner pubblicitari. Battery Saver controlla in automatico lo stato dello schermo.Se è spento disattiva WIFI e NAVIGAZIONE MOBILE, per poi riaccenderle a schermo attivo.
[APP] BatterySaver - Android Developers Italia
--------

Offline mikyx

  • Nuovo arrivato
  • *
  • Post: 25
  • Respect: +2
    • Mostra profilo
  • Sistema operativo:
    Linux Ubuntu 13.04
Re:[facile] Aggiungere un nuovo Font ad una TextView
« Risposta #1 il: 29 Ottobre 2011, 17:05:14 CEST »
0
ottimo topic! ;) Solo una cosa, questo metodo a che serve "waitingTimeView.refreshDrawableState();" ?? :-)

Offline alepio

  • Utente normale
  • ***
  • Post: 163
  • Respect: +3
    • Google+
    • 107850838
    • Mostra profilo
  • Dispositivo Android:
    SAMSUNG ACE
  • Play Store ID:
    Alessandro Piola
  • Sistema operativo:
    WIN 7
Re:[facile] Aggiungere un nuovo Font ad una TextView
« Risposta #2 il: 29 Ottobre 2011, 17:22:57 CEST »
0
ottimo topic! ;) Solo una cosa, questo metodo a che serve "waitingTimeView.refreshDrawableState();" ?? :-)
quando ho scritto la guida credevo servisse per il refresh, ma ora direi che non serve.
-----------------------------------------------------
Con RISPARMIO BATTERIA - Battery Saver puoi anche dimenticarti a casa il carica batteria. Inoltre con gli EXTRAS puoi configurare la navigazione e disattivare i banner pubblicitari. Battery Saver controlla in automatico lo stato dello schermo.Se è spento disattiva WIFI e NAVIGAZIONE MOBILE, per poi riaccenderle a schermo attivo.
[APP] BatterySaver - Android Developers Italia
--------

Offline mikyx

  • Nuovo arrivato
  • *
  • Post: 25
  • Respect: +2
    • Mostra profilo
  • Sistema operativo:
    Linux Ubuntu 13.04
Re:[facile] Aggiungere un nuovo Font ad una TextView
« Risposta #3 il: 29 Ottobre 2011, 17:24:35 CEST »
0
Ok, però adesso mi crasha su
Typeface myTypeface = Typeface.createFromAsset(this.getAssets(),"ROBOTO-REGULAR.TTF");

ROBOTO-REGULAR è il nome del font che voglio installare e che ho copiato nella cartella da te detta. Se commento questo codice l'app va, mentre se non lo commmento (anche se non uso myTapeface) mi crasha prima di partire  o_O

Offline teskio

  • Moderatore globale
  • Utente normale
  • *****
  • Post: 387
  • Respect: +118
    • Github
    • Google+
    • Mostra profilo
    • Skullab
  • Dispositivo Android:
    Cubot GT99 / SurfTab Ventos 10.1
  • Play Store ID:
    Skullab Software
  • Sistema operativo:
    windows 7 / ubuntu 12.04
Re:[facile] Aggiungere un nuovo Font ad una TextView
« Risposta #4 il: 30 Ottobre 2011, 22:01:34 CET »
0
logcat

Offline mikyx

  • Nuovo arrivato
  • *
  • Post: 25
  • Respect: +2
    • Mostra profilo
  • Sistema operativo:
    Linux Ubuntu 13.04
Re:[facile] Aggiungere un nuovo Font ad una TextView
« Risposta #5 il: 30 Ottobre 2011, 22:59:19 CET »
0
ehm.... cioè?

Offline mangusto

  • Utente normale
  • ***
  • Post: 152
  • Respect: +5
    • Google+
    • Mostra profilo
  • Dispositivo Android:
    ZTE Blade
  • Play Store ID:
    Leonardo Preti
  • Sistema operativo:
    Windows 7
Re:[facile] Aggiungere un nuovo Font ad una TextView
« Risposta #6 il: 30 Ottobre 2011, 23:01:55 CET »
0

Offline mikyx

  • Nuovo arrivato
  • *
  • Post: 25
  • Respect: +2
    • Mostra profilo
  • Sistema operativo:
    Linux Ubuntu 13.04
Re:[facile] Aggiungere un nuovo Font ad una TextView
« Risposta #7 il: 30 Ottobre 2011, 23:31:38 CET »
0
Si l'ho letta, ma non ci ho capito granchè comunque. va bhe fa lo stesso non è un grosso probema :-)

Offline mangusto

  • Utente normale
  • ***
  • Post: 152
  • Respect: +5
    • Google+
    • Mostra profilo
  • Dispositivo Android:
    ZTE Blade
  • Play Store ID:
    Leonardo Preti
  • Sistema operativo:
    Windows 7
Re:[facile] Aggiungere un nuovo Font ad una TextView
« Risposta #8 il: 30 Ottobre 2011, 23:33:52 CET »
0
Semplicemente attivi il Logcat in Eclipse e posti qui gli errori, così gli altri possono aiutarti capendo cosa hai sbagliato. Ecco cosa intendeva dicendo "logcat" ;-)

Offline Gdg92ct

  • Nuovo arrivato
  • *
  • Post: 14
  • Respect: 0
    • Google+
    • Mostra profilo
    • gdgweb.altervista.org
  • Play Store ID:
    Gdg92ct
  • Sistema operativo:
    Windows 7
Re:[facile] Aggiungere un nuovo Font ad una TextView
« Risposta #9 il: 26 Marzo 2013, 14:57:55 CET »
0
Ottima guida, io però non carico direttamente il font nella cartella assets, ma creo una sortocartella fonts e metto il file li.