Ricerca…


Osservazioni

I caratteri di icona sono come tipi di carattere normali che contengono simboli anziché lettere. Può essere utilizzato nella tua applicazione con la massima facilità.

Loro sono:

  • Flessibile
  • Scalabile
  • Vettori
  • Veloce processabile
  • Peso leggero
  • Accessibile

Effetto sulle dimensioni

Esportare un'immagine in varie dimensioni per dispositivi Android costerebbe alla tua app, una dimensione aggiuntiva di circa 30 KB per immagine. Mentre aggiungere un file di font (.ttf) con circa 36 icone costerebbe solo 9kB. Immagina il caso se stai aggiungendo 36 singoli file di varie configurazioni che sarebbero circa 1000kB. È una quantità ragionevole di spazio che verrà salvato utilizzando i caratteri icona.

Limitazioni dei caratteri Icon.

  • I caratteri icona possono essere utilizzati nel cassetto di navigazione. Non è possibile utilizzarli nelle viste di navigazione come icona delle voci di menu poiché non è possibile creare il file di menu senza specificare il titolo. Quindi è consigliabile usare i file svg come risorse per queste icone.

  • I caratteri icona non possono essere utilizzati nel pulsante di azione mobile. in quanto non hanno un attributo setText() .

  • I caratteri esterni non possono essere applicati da xml. Devono essere specificati usando il file java. Oppure è necessario estendere la vista di base e creare una vista come specificato in questo post

Come integrare i font Icon

Per utilizzare i font di icone, procedi nel seguente modo:

  • Aggiungi il file di font al tuo progetto

    È possibile creare il file dell'icona del carattere da siti Web online come icomoon , in cui è possibile caricare i file SVG delle icone richieste e quindi scaricare il carattere dell'icona creato. Quindi, inserisci il file di font .ttf in una cartella denominata fonts ( nominalo come desideri) nella cartella assets:

    Posizione in cui inserire il file del carattere

  • Crea una classe di supporto

    Ora, crea la seguente classe helper, in modo che tu possa evitare di ripetere il codice di inizializzazione per il font:

    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);
      }
    }
    

    È possibile utilizzare la classe Typeface per prelevare il carattere dalle risorse. In questo modo è possibile impostare il carattere tipografico su varie viste, ad esempio su un pulsante:

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

    Ora, il carattere tipografico del pulsante è stato modificato con il carattere dell'icona appena creato.

  • Raccogli le icone che vuoi

    Apri il file styles.css collegato al carattere dell'icona. Lì troverai gli stili con i caratteri Unicode delle tue icone:

    .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”;
    }
    

    Questo file di risorse fungerà da dizionario, che associa il carattere Unicode associato a un'icona specifica a un nome leggibile dall'uomo. Ora, crea le risorse stringa come segue:

    <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>
    
  • Usa le icone nel tuo codice

    Ora, puoi usare il tuo font in varie viste, ad esempio, come segue:

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

    Puoi anche creare viste di testo pulsante utilizzando i caratteri icona:

    Pulsanti di esempio con icone su di loro

TabLayout con caratteri icona

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
Autorizzato sotto CC BY-SA 3.0
Non affiliato con Stack Overflow