Autore Topic: Font applicazione  (Letto 583 volte)

Offline Cloud

  • Nuovo arrivato
  • *
  • Post: 7
  • Respect: 0
    • Mostra profilo
  • Dispositivo Android:
    Nexus 5
  • Sistema operativo:
    Windows 7
Font applicazione
« il: 20 Aprile 2014, 13:16:16 CEST »
0
Salve a tutti, voglio impostare un font esterno ad un'applicazione che sto creando. La mia domanda è si può cambiare il font all'intera applicazione senza doverlo inserire in ogni singola parte del codice? Inoltre sto provando ad inserire una font ma non va. Il codice è il seguente:
Codice (Java): [Seleziona]
private TextView text;
    @Override
    protected void onCreate(Bundle savedInstanceState) {
        super.onCreate(savedInstanceState);
        setContentView(R.layout.activity_main);

        Typeface font = Typeface.createFromAsset(getAssets(), "fonts/light.ttf");
        TextView tv=(TextView) findViewById(R.id.text);
        tv.setTypeface(font);


    }

Ma mi da il seguente errore:
Codice (XML): [Seleziona]
Process: com.rdc.myapplication2.app, PID: 1324
    java.lang.RuntimeException: Unable to start activity ComponentInfo{com.rdc.myapplication2.app/com.rdc.myapplication2.app.MainActivity}: java.lang.RuntimeException: native typeface cannot be made
            at android.app.ActivityThread.performLaunchActivity(ActivityThread.java:2195)
            at android.app.ActivityThread.handleLaunchActivity(ActivityThread.java:2245)
            at android.app.ActivityThread.access$800(ActivityThread.java:135)
            at android.app.ActivityThread$H.handleMessage(ActivityThread.java:1196)
            at android.os.Handler.dispatchMessage(Handler.java:102)
            at android.os.Looper.loop(Looper.java:136)
            at android.app.ActivityThread.main(ActivityThread.java:5017)
            at java.lang.reflect.Method.invokeNative(Native Method)
            at java.lang.reflect.Method.invoke(Method.java:515)
            at com.android.internal.os.ZygoteInit$MethodAndArgsCaller.run(ZygoteInit.java:779)
            at com.android.internal.os.ZygoteInit.main(ZygoteInit.java:595)
            at dalvik.system.NativeStart.main(Native Method)
     Caused by: java.lang.RuntimeException: native typeface cannot be made
            at android.graphics.Typeface.<init>(Typeface.java:175)
            at android.graphics.Typeface.createFromAsset(Typeface.java:149)
            at com.rdc.myapplication2.app.MainActivity.onCreate(MainActivity.java:20)
            at android.app.Activity.performCreate(Activity.java:5231)
            at android.app.Instrumentation.callActivityOnCreate(Instrumentation.java:1087)
            at android.app.ActivityThread.performLaunchActivity(ActivityThread.java:2159)
            at android.app.ActivityThread.handleLaunchActivity(ActivityThread.java:2245)
            at android.app.ActivityThread.access$800(ActivityThread.java:135)
            at android.app.ActivityThread$H.handleMessage(ActivityThread.java:1196)
            at android.os.Handler.dispatchMessage(Handler.java:102)
            at android.os.Looper.loop(Looper.java:136)
            at android.app.ActivityThread.main(ActivityThread.java:5017)
            at java.lang.reflect.Method.invokeNative(Native Method)
            at java.lang.reflect.Method.invoke(Method.java:515)
            at com.android.internal.os.ZygoteInit$MethodAndArgsCaller.run(ZygoteInit.java:779)
            at com.android.internal.os.ZygoteInit.main(ZygoteInit.java:595)
            at dalvik.system.NativeStart.main(Native Method)

Quale potrebbe essere il problema?
P.S.: Uso Android studio.

Offline YvesB

  • Nuovo arrivato
  • *
  • Post: 18
  • Respect: 0
    • Github
    • Mostra profilo
  • Dispositivo Android:
    Galaxy Nexus
  • Play Store ID:
    Young Peacock
  • Sistema operativo:
    Linux Mint 15
Re:Font applicazione
« Risposta #1 il: 20 Aprile 2014, 17:19:19 CEST »
0
Ciao, l'errore potrebbe essere la non corretta posizione della cartella assets. Io non uso Android Studio ma ho visto che le directiories devono essere le seguenti:
Codice (XML): [Seleziona]
src/main/assets/ e quindi
Codice (XML): [Seleziona]
fonts/light.ttf.

Comunque se sono font Roboto ti consiglio di utilizzare gli attributi android:fontFamily e android:textStyle direttamente nella TextView

Offline Cloud

  • Nuovo arrivato
  • *
  • Post: 7
  • Respect: 0
    • Mostra profilo
  • Dispositivo Android:
    Nexus 5
  • Sistema operativo:
    Windows 7
Re:Font applicazione
« Risposta #2 il: 20 Aprile 2014, 19:20:26 CEST »
0
Non è Robo :( Comunque ho provato anche ad inserirla nella cartella che dici, ma mi da lo stesso errore. In main ho creato una cartella assets, ma nulla.

Offline maverik1408

  • Utente junior
  • **
  • Post: 99
  • Respect: +1
    • Mostra profilo
    • MaverikApps
  • Dispositivo Android:
    NEXUS 5
  • Play Store ID:
    Maverik
Re:Font applicazione
« Risposta #3 il: 22 Aprile 2014, 07:20:36 CEST »
0
Credo sia un problema di android studio prova cosi

Codice (Java): [Seleziona]
Typeface font = Typeface.createFromAsset(getContext().getAssets(), "fonts/light.ttf");
        TextView tv=(TextView) findViewById(R.id.text);
        tv.setTypeface(font);
Maverik @ Google Play Store