Button Font ändern

  • Antworten:37
  • OffenNicht stickyBentwortet
  • Forum-Beiträge: 59

18.06.2017, 13:01:19 via Website

Hallo liebe Community,

ich versuche seit einiger Zeit mit verschiedenen Lösungen die Schriftart bei meinen Buttons zuändern. Was für mich recht simpel klingt ist es anscheinend nicht. Ich habe einen Assets Ordner erstellt und dort unter dem Ordner "fonts" die Datei ClearLine.ttf eingefügt. Bei der ttf Datei hat er zuerst gemeldet das dort eine falsche Codierung verwendet wurde. Diesen Fehler konnte ich beheben.

Den Text im Button Namens "Anis" habe ich über strings definiert.

Dies ist der Code den ich in die .java Datei von der Activity eingefügt habe:

    Button Anis;
    Typeface tf1;

    Anis= (Button) findViewById(R.id.Anis);

    String fontPath = "fonts/ClearLine.ttf";

    tf1 = Typeface.createFromAsset(getAssets(), fontPath);

    Anis.setTypeface(tf1);

In der Preview verändert sich optisch rein gar nichts und beim Starten stürzt die App komplett ab.

Hab ich irgendwas simples übersehen?

Antworten
Ludy
  • Mod
  • Blogger
  • Forum-Beiträge: 7.167

18.06.2017, 13:12:55 via App

Sieht schon mal nicht schlecht aus, was ich dir gleich auf den Weg geben muss, ids werden klein geschrieben!

Zu deinem Problem kann man ohne LogCat nur spekulieren, was sagt der denn aus?

Ist in den Asset Ordner ein Unterordnen mit font? Und da drin auch die .ttf?
Ich der Asset am richtigen Ort angelegt?

Gruß Ludy (App Entwickler)

Mein Beitrag hat dir geholfen? Lass doch ein "Danke" da.☺

Lebensmittelwarnung App-Thread

Download Samsung Firmware Tool

Genetix x

Antworten
Pascal P.
  • Mod
  • Blogger
  • Forum-Beiträge: 10.183

18.06.2017, 13:13:37 via App

Wenn du deine ttf über getAssets lädst muss die Datei auch direkt im Assets Ordner vorliegen. Unterordnet o.ä. werden nicht unterstützt glaub ich

— geändert am 18.06.2017, 13:14:05

LG Pascal //It's not a bug, it's a feature. :) ;)

Genetix x

Antworten
  • Forum-Beiträge: 59

18.06.2017, 13:19:21 via Website

@Ludy Der Assets Ordner liegt im Main Ordner und hat auch den Unterordner mit font. Die Id hatte ich mit groß geschrieben weil er sie klein nicht gefunden hatte.

06-18 13:18:03.618 31373-31373/? E/Minikin: addFontFromAsset failed to create font fonts/ClearLine.ttf
06-18 13:18:03.619 31373-31373/? D/AndroidRuntime: Shutting down VM
06-18 13:18:03.620 31373-31373/? E/AndroidRuntime: FATAL EXCEPTION: main

@Pascal P. Deswegen hatte ich ja den Unterordner über den fontpath definiert. Sollte eigentlich darüber funktionieren meiner Meinung nach.

Antworten
  • Forum-Beiträge: 59

18.06.2017, 13:21:54 via Website

Konnte den

06-18 13:18:03.618 31373-31373/? E/Minikin: addFontFromAsset failed to create font fonts/ClearLine.ttf

beheben allerdings verbleibt noch dieser Error:

06-18 13:20:50.325 1640-1640/com.example.prototyp.cookingstar D/AndroidRuntime: Shutting down VM
06-18 13:20:50.326 1640-1640/com.example.prototyp.cookingstar E/AndroidRuntime: FATAL EXCEPTION: main
Process: com.example.prototyp.cookingstar, PID: 1640
java.lang.RuntimeException: Unable to start activity ComponentInfo{com.example.prototyp.cookingstar/com.example.prototyp.cookingstar.Gewuerze}: java.lang.RuntimeException: Font asset not found fonts/clearline.ttf
at android.app.ActivityThread.performLaunchActivity(ActivityThread.java:2924)
at android.app.ActivityThread.handleLaunchActivity(ActivityThread.java:2985)
at android.app.ActivityThread.-wrap14(ActivityThread.java)
at android.app.ActivityThread$H.handleMessage(ActivityThread.java:1635)
at android.os.Handler.dispatchMessage(Handler.java:102)
at android.os.Looper.loop(Looper.java:154)
at android.app.ActivityThread.main(ActivityThread.java:6692)
at java.lang.reflect.Method.invoke(Native Method)
at com.android.internal.os.ZygoteInit$MethodAndArgsCaller.run(ZygoteInit.java:1468)
at com.android.internal.os.ZygoteInit.main(ZygoteInit.java:1358)
Caused by: java.lang.RuntimeException: Font asset not found fonts/clearline.ttf
at android.graphics.Typeface.createFromAsset(Typeface.java:284)
at com.example.prototyp.cookingstar.Gewuerze.onCreate(Gewuerze.java:28)
at android.app.Activity.performCreate(Activity.java:6912)
at android.app.Instrumentation.callActivityOnCreate(Instrumentation.java:1126)
at android.app.ActivityThread.performLaunchActivity(ActivityThread.java:2877)
at android.app.ActivityThread.handleLaunchActivity(ActivityThread.java:2985) 
at android.app.ActivityThread.-wrap14(ActivityThread.java) 
at android.app.ActivityThread$H.handleMessage(ActivityThread.java:1635) 
at android.os.Handler.dispatchMessage(Handler.java:102) 
at android.os.Looper.loop(Looper.java:154) 
at android.app.ActivityThread.main(ActivityThread.java:6692) 
at java.lang.reflect.Method.invoke(Native Method) 
at com.android.internal.os.ZygoteInit$MethodAndArgsCaller.run(ZygoteInit.java:1468) 
at com.android.internal.os.ZygoteInit.main(ZygoteInit.java:1358) 

Antworten
Ludy
  • Mod
  • Blogger
  • Forum-Beiträge: 7.167

18.06.2017, 13:26:50 via App

Schau mal deine Schreibweise an fonts/clearline.ttf ist der Dateiname komplett klein geschrieben? Heißt der Unterordnen font oder fonts?

Setz mal vor dem getAssets() den Context der Activity.

Gruß Ludy (App Entwickler)

Mein Beitrag hat dir geholfen? Lass doch ein "Danke" da.☺

Lebensmittelwarnung App-Thread

Download Samsung Firmware Tool

Pascal P.

Antworten
  • Forum-Beiträge: 59

18.06.2017, 13:39:44 via Website

Hab den Unterordner "fonts" jetzt rausgenommen und der Dateiname wird mit großem C und großem L geschrieben.

Wie ist das in dem Fall mit Context der Activity gemeint? So weit kenn ich mich dann doch noch nicht aus :)

Antworten
Ludy
  • Mod
  • Blogger
  • Forum-Beiträge: 7.167

18.06.2017, 14:13:56 via Website

Ich habe jetzt selber getestet und es funktioniert.
User uploaded photo

<Button
    android:id="@+id/anis"
    android:layout_width="wrap_content"
    android:layout_height="wrap_content"
    android:text="Button" />

Es kann auch sein das die ttf fehlerhaft ist, am besten nochmal downloaden und integrieren.

Gruß Ludy (App Entwickler)

Mein Beitrag hat dir geholfen? Lass doch ein "Danke" da.☺

Lebensmittelwarnung App-Thread

Download Samsung Firmware Tool

Genetix xPascal P.

Antworten
  • Forum-Beiträge: 59

18.06.2017, 14:23:10 via Website

Bei dir sieht die ClearLine.ttf Symbolmäßig auch komplett anders aus. Ist denn der Fehler "File was loaded in wrong coding" normal?

Hab jetzt nochmal runtergeladen und klappen will es immer noch nicht.

Antworten
  • Forum-Beiträge: 59

18.06.2017, 14:25:43 via Website

Komisch jetzt geht es auf einmal.

Die Wunder der Technik :D. Danke nochmal viel mals.

Sollte noch ein Problem aufkommen kann ich ja nochmal bescheid geben hoffe das stört nicht :).

Antworten
  • Forum-Beiträge: 59

18.06.2017, 14:32:26 via Website

So komisch es auch klingt aber es hat funktioniert nachdem ich die Datei gelöscht habe und wieder neu eingefügt habe :?

Nur ne allgemeine Frage: wäre es möglich hier im Forum um Mithilfe beim Projekt zu fragen?

Antworten
Ludy
  • Mod
  • Blogger
  • Forum-Beiträge: 7.167

18.06.2017, 14:35:56 via Website

Genetix x

wäre es möglich hier im Forum um Mithilfe beim Projekt zu fragen?

Das machst du doch schon ;)

Ansonsten haben wir noch diesen Bereich: https://www.androidpit.de/forum/android-jobs-angebote-nicht-kommerziell/neue-beitraege

Gruß Ludy (App Entwickler)

Mein Beitrag hat dir geholfen? Lass doch ein "Danke" da.☺

Lebensmittelwarnung App-Thread

Download Samsung Firmware Tool

Genetix x

Antworten
  • Forum-Beiträge: 59

18.06.2017, 14:37:41 via Website

Ist das Angebot denn kommerziell wenn die App nach Release Monatlich Gewinn abwirft, wo der Programmierer dann auch seinen Teil abbekommt? :?

Antworten
Ludy
  • Mod
  • Blogger
  • Forum-Beiträge: 7.167

18.06.2017, 14:56:36 via Website

Das ist nach der Entwicklung und nicht währenddessen, die Gewinnabschöpfung zählt in unseren Augen nicht als Kommerzielle Bezahlung (Lohn oder Gehalt im eigentlichem Sinne)

Gruß Ludy (App Entwickler)

Mein Beitrag hat dir geholfen? Lass doch ein "Danke" da.☺

Lebensmittelwarnung App-Thread

Download Samsung Firmware Tool

Genetix xPascal P.

Antworten
  • Forum-Beiträge: 59

18.06.2017, 15:10:46 via Website

Oke dann bedank ich mich nochmal für deine umfangreiche Hilfe und wünsch dir noch nen schönen Sonntag :)

Ludy

Antworten
  • Forum-Beiträge: 1.991

19.06.2017, 21:55:25 via Website

Hätte an dieser Stelle noch ne Frage: welches import android... muss man verwenden, dass Typeface unterstützt wird?
Könntet ihr mir bitte auch noch bei den anderen Fehlern beistehen? Was erfordert beispielsweise das unterwellte "font" an Code? :D

Aktuell siehts bei mir so aus:
image

— geändert am 19.06.2017, 21:56:55

Samsung Galaxy S9
- Android 8.0
- frei für alle Netze

Antworten
  • Forum-Beiträge: 2.909

19.06.2017, 21:57:28 via Website

Hallo Fritz

mit ALT + Enter bekommst du die Imports

Und "font" ist unterwellt , weil "font" keinen Bezug hat ( TypeFace)

P.S bitte keine ganzen Screenshots , kann man kaum erkennen
Bitte Codeschnipsel, oder Imageausschnitt - Danke

— geändert am 19.06.2017, 22:05:06

Liebe Grüße - Stefan
[ App - Entwicklung ]

Genetix x

Antworten
  • Forum-Beiträge: 59

19.06.2017, 21:57:56 via Website

Also für typeface nimmt man soweit ich weiß "import android.graphics.Typeface;"

Und dein Bild ist zumindest bei mir zu klein um etwas zuerkennen :)

Ludy

Antworten
  • Forum-Beiträge: 1.991

19.06.2017, 22:35:40 via App

Jo ich weiß, der Screenshot war alles andere als optimal - werd ich nächstes Mal besser machen.

Danke für eure Antworten, morgen integriere ich die Tipps und berichte. ;)

— geändert am 19.06.2017, 22:36:15

Samsung Galaxy S9
- Android 8.0
- frei für alle Netze

Antworten

Empfohlene Artikel