Neue Schriftart in App einbinden

  • Hallo zusammen,


    ich bin ziemlich neu was die Programmierung von Apps angeht, daher sehe man mir bitte diese Frage nach. Ich habe bereits im Forum danach gesucht, leider jedoch nicht das Passende gefunden. (oder ich war zu "unintelligent" es zu finden...dann bitte Hinweis und Thema schliessen :) )
    Wenn ich es recht verstanden habe, dann gibt es unter Android Studio die Möglichkeit, Schriftart, -größe und -style zu ändern.
    Wie funktioniert es jedoch, wenn ich einen völlig neuen Schrifttyp einbinden möchte ? Diesen quasi mit der App auf das dementprechende Gerät mitbringen möchte ?
    Bisher habe ich herausfinden können, das die Schrift unter dem Folder "asset" gespeichert werden soll (hab ich gemacht, alles klein geschrieben...), und dann mit in der MainActivity.java mit eingebunden werden soll (im Bereich "onCreate", aber nach "setContent"). Jetzt soll aber die Schrift nur in einem bestimmten Fragment geändert werden...und jetzt ???
    Hier das snippet aus der MainActivity an besagter Stelle:

    Code
    android.widget.TextView textView = (android.widget.TextView) findViewById(R.id.text_clock_clock_local_time);
            android.graphics.Typeface typeFace = android.graphics.Typeface.createFromAsset(getAssets(), "dsdigib.ttf");
            textView.setTypeface(typeFace);

    Die genannte R.id. ist die id vom Fragment, in dem sich der zu verändernde Schriftzug befindet (bzw. die Zahlen der Uhrzeit.)
    Jedoch kommt beim Testen folgende Fehlermeldung:


    • java.lang.NullPointerException: Attempt to invoke virtual method 'void android.widget.TextView.setTypeface(android.graphics.Typeface)' on a null object reference

    Ich habe jetzt allerdings noch nicht ganz verstanden, warum diese Fehlermeldung kommt (Problem sitzt wahrscheinlich 60 cm vorm Bildschirm...) ??
    Korrigiert mich, wenn ich falsch liege ....Dies ist eine Fehlermeldung, die erst beim Ausführen entstehlt. Sie sagt mir, das eine Ausnahme auftritt, wenn ich auf "nix" referrenziere........habe ich das so richtig verstanden ?
    Ist bestimmt was Banales, aber ich bräucht halt einen Denkanstoß und wäre deshalb dankbar, wenn sich jemand dazu äußern könnte. :)


    Danke schon mal Voraus


    Gruß Carsten

  • Hi,


    UPDATE:
    die NullPointerException hab ich jetzt mit ner If-Abfrage "abgefangen"....trotzdem wird in dem Fragment nicht die Schriftart angewendet, die ich gerne hätte.....????
    Wo mache ich den Fehler ???


    Gruß Carsten

  • Zunächst: Möchtest du eine Nutzerfreundliche und grafisch ansprechende Android applikation entwickeln, ist es eine schlechte idee vom System vorgegebene Attribute wie Schriftarten zu ändern.


    Um dein Problem zu lösen:
    So wie ich das sehe hast du wohl einfach den dateiname falsch geschrieben. Er kann dein typeface objekt nicht referenzieren, da er mit dem pfad nix findet.

  • Hi,
    Erst mal vielen Dank das Du Dir es angeschaut hast.
    Ich bin dabei, mir einen Wecker zu basteln (nicht lachen, ich weiß das das simpel ist) und dabei möchte verschiedene "Dinge" ausprobieren. Wecker bzw. Uhrzeit funktioniert mit der Systemschrift "sans-serif".... Leider aber nicht mit dieser anderen Schrift. Ist aber richtig geschrieben. Das hatte ich schon in Betracht gezogen und überprüft. Auch mal die Schrift entfernt, dann kam die Fehlermeldung das er die angegebene Datei nicht findet....Schrift funktioniert auch, konnte sie problemlos in WINDOWS öffnen....Daher stehe ich etwas auf dem Schlauch....


    Gruß


    Carsten

Jetzt mitmachen!

Sie haben noch kein Benutzerkonto auf unserer Seite? Registrieren Sie sich kostenlos und nehmen Sie an unserer Community teil!