Suche…


Bemerkungen

Symbolschriftarten sind wie normale Schriftarten, die Symbole anstelle von Buchstaben haben. Es kann in Ihrer Anwendung mit Leichtigkeit verwendet werden.

Sie sind:

  • Flexibel
  • Skalierbar
  • Vektoren
  • Schnell verarbeitbar
  • Leicht
  • Zugänglich

Auswirkungen auf die Größe

Das Exportieren eines Bildes in verschiedenen Größen für Android-Geräte würde Ihre App zusätzlich kosten, etwa 30 KB pro Bild. Das Hinzufügen einer Schriftartdatei (.ttf) mit etwa 36 Symbolen würde nur 9 KB kosten. Stellen Sie sich nur den Fall vor, wenn Sie 36 einzelne Dateien mit verschiedenen Konfigurationen hinzufügen, sie wären etwa 1000 KB groß. Es ist ein angemessener Speicherplatz, den Sie durch die Verwendung von Symbolschriftarten sparen.

Einschränkungen von Icon-Schriftarten.

  • Symbolzeichensätze können in der Navigationsleiste verwendet werden. Die Verwendung in Navigationsansichten als Symbol für Menüelemente ist nicht möglich, da die Menüdatei nicht ohne Angabe des Titels erstellt werden kann. Daher ist es ratsam, SVG-Dateien als Ressourcen für diese Symbole zu verwenden.

  • Symbolfonts können nicht in Floating-Aktionsschaltflächen verwendet werden. da sie kein setText() -Attribut haben.

  • Externe Schriftarten können nicht aus XML übernommen werden. Sie müssen mit der Java-Datei angegeben werden. Oder Sie müssen die Basisansicht erweitern und eine Ansicht erstellen, wie in diesem Beitrag angegeben

So integrieren Sie Icon-Schriftarten

Um die Symbolschriftarten zu verwenden, folgen Sie einfach den folgenden Schritten:

  • Fügen Sie die Schriftartdatei Ihrem Projekt hinzu

    Sie können Ihre Schriftart- Symboldatei von Online-Websites wie z. B. icomoon erstellen , auf der Sie SVG-Dateien mit den erforderlichen Symbolen hochladen und dann die erstellte Symbolschriftart herunterladen können. Legen Sie dann die .ttf- Schriftartdatei in einen Ordner mit dem Namen fonts (benennen Sie ihn nach Belieben) im Assets-Ordner ab:

    Ort, an dem die Schriftdatei abgelegt werden soll

  • Erstellen Sie eine Helferklasse

    Erstellen Sie nun die folgende Hilfsklasse, damit Sie den Initialisierungscode für die Schriftart nicht wiederholen müssen:

    public class FontManager {
      public static final String ROOT = "fonts/";
      FONT_AWESOME = ROOT + "myfont.ttf";
      public static Typeface getTypeface(Context context) {
        return Typeface.createFromAsset(context.getAssets(), FONT_AWESOME);
      }
    }
    

    Sie können die Typeface Klasse verwenden, um die Schriftart aus den Assets auszuwählen. Auf diese Weise können Sie die Schriftart auf verschiedene Ansichten einstellen, beispielsweise auf eine Schaltfläche:

    Button button=(Button) findViewById(R.id.button);
    Typeface iconFont=FontManager.getTypeface(getApplicationContext());
    button.setTypeface(iconFont);
    

    Die Schaltflächenschriftart wurde nun in die neu erstellte Symbolschriftart geändert.

  • Heben Sie die gewünschten Symbole auf

    Öffnen Sie die Datei styles.css , die der Symbolschriftart angehängt ist. Dort finden Sie die Stile mit Unicode-Zeichen Ihrer Symbole:

    .icon-arrow-circle-down:before {
      content: “\e001”;
    }
    .icon-arrow-circle-left:before {
      content: “\e002”;
    }
    .icon-arrow-circle-o-down:before {
      content: “\e003”;
    }
    .icon-arrow-circle-o-left:before {
      content: “\e004”;
    }
    

    Diese Ressourcendatei dient als Wörterbuch, in dem das mit einem bestimmten Symbol verknüpfte Unicode-Zeichen einem vom Menschen lesbaren Namen zugeordnet wird. Erstellen Sie nun die Zeichenfolgenressourcen wie folgt:

    <resources>
      <! — Icon Fonts -->
      <string name=”icon_arrow_circle_down”>&#xe001; </string>
      <string name=”icon_arrow_circle_left”>&#xe002; </string>
      <string name=”icon_arrow_circle-o_down”>&#xe003; </string>
      <string name=”icon_arrow_circle_o_left”>&#xe004; </string>
    </resources>
    
  • Verwenden Sie die Symbole in Ihrem Code

    Nun können Sie Ihre Schrift beispielsweise in folgenden Ansichten verwenden:

    button.setText(getString(R.string.icon_arrow_circle_left))
    

    Sie können Schaltflächentextansichten auch mit Symbolschriftarten erstellen:

    Beispielschaltflächen mit Symbolen

TabLayout mit Symbolschriftarten

public class TabAdapter extends FragmentPagerAdapter {

CustomTypefaceSpan fonte;
List<Fragment> fragments = new ArrayList<>(4);
private String[] icons = {"\ue001","\uE002","\uE003","\uE004"};

public TabAdapter(FragmentManager fm, CustomTypefaceSpan fonte) {
    super(fm);
    this.fonte = fonte
    for (int i = 0; i < 4; i++){
        fragments.add(MyFragment.newInstance());
    }
}

public List<Fragment> getFragments() {
    return fragments;
}

@Override
public Fragment getItem(int position) {
    return fragments.get(position);
}

@Override
public CharSequence getPageTitle(int position) {
    SpannableStringBuilder ss = new SpannableStringBuilder(icons[position]);
    ss.setSpan(fonte,0,ss.length(), Spanned.SPAN_INCLUSIVE_INCLUSIVE);
    ss.setSpan(new RelativeSizeSpan(1.5f),0,ss.length(), Spanned.SPAN_INCLUSIVE_INCLUSIVE );
    return ss;
}



@Override
public int getCount() {
    return 4;
}

}
//..
TabLayout tabs;
ViewPager tabs_pager;
public CustomTypefaceSpan fonte;
//..

@Override
protected void onCreate(Bundle savedInstanceState) {
    super.onCreate(savedInstanceState);
    //...
    fm = getSupportFragmentManager();
    fonte = new CustomTypefaceSpan("icomoon",Typeface.createFromAsset(getAssets(),"myfont.ttf"));
    this.tabs = ((TabLayout) hasViews.findViewById(R.id.tabs));
    this.tabs_pager = ((ViewPager) hasViews.findViewById(R.id.tabs_pager));
    //...
}

@Override
protected void onStart() {
    super.onStart();
    //..
    tabs_pager.setAdapter(new TabAdapter(fm,fonte));
    tabs.setupWithViewPager(tabs_pager);
    //..


Modified text is an extract of the original Stack Overflow Documentation
Lizenziert unter CC BY-SA 3.0
Nicht angeschlossen an Stack Overflow