Snelle tip pas Android-lettertypen aan

Elk Android-apparaat wordt geleverd met een verzameling standaardlettertypen: Droid Sans, Droid Sans Mono en Droid Serif. Ze zijn ontworpen om optimaal te zijn voor mobiele schermen, dus dit zijn de drie lettertypen waarmee u het grootste deel van de tijd zult werken en ze kunnen worden gestileerd met een handvol XML-attributen. U zou echter de noodzaak kunnen zien om aangepaste lettertypen voor speciale doeleinden te gebruiken. We zullen dat ook in deze snelle tip bekijken.

Stijlkenmerken van lettertypen

In het volgende gedeelte gaan we de verschillende XML-kenmerken bekijken die u kunt gebruiken om componenten met tekst te stylen. Als je mee wilt doen, stel dan een nieuw Android-project in met je IDE naar keuze en open je main.xml lay-outbestand.

Typeface

Zoals vermeld in het overzicht, zijn er drie verschillende standaardlettertypen die bekend staan ​​als de Droid-familie van lettertypen: sans, monospace en serif. U kunt een van deze waarden opgeven als de waarde voor de android: lettertype attribuut in de XML-verklaring van een component die tekststijlen ondersteunt, zoals TextView. Hier is een voorbeeld van alle drie de lettertypen in actie:

      

In aanvulling op het bovenstaande is er nog een attribuutwaarde met de naam "normaal", die standaard verwijst naar het sans-lettertype.

Tekststijl

De android: tekstletter attribuut kan worden gebruikt om de nadruk te leggen op tekst. De mogelijke waarden zijn: normaal, vet, cursief. U kunt ook opgeven bold | cursief.

 

Lettergrootte

android: tekstgrootte geeft de lettergrootte aan. De waarde ervan moet uit twee delen bestaan: een drijvende-kommagetal gevolgd door een eenheid. Beschikbare eenheden zijn: sp (geschaalde pixels), px (pixels), dp (dichtheid-onafhankelijke pixels), in (inches), mm (millimeter). Het is over het algemeen een goede gewoonte om de sp eenheid, zodat de grootte kan worden geschaald afhankelijk van de gebruikersinstellingen.

 

Tekst kleur

De android: textColor waarde van attribuut is een hexadecimale RGB-waarde met een optioneel alfakanaal, vergelijkbaar met wat in is gevonden CSS en kan in een van de volgende formaten zijn:

  • #RGB
  • #ARGB
  • #RRGGBB
  • #AARRGGBB

U kunt ook verwijzen naar een kleurdeclaratie met @ Kleur / COLOR_NAME.

 

Schaduw tekst

U kunt drie verschillende kenmerken gebruiken om het uiterlijk van uw tekstschaduw aan te passen:

  • android: schaduwkleur Schaduwkleur in hetzelfde formaat als textColor.
  • android: shadowRadius Straal van de schaduw gespecificeerd als een drijvend kommagetal.
  • android: shadowDx De horizontale verschuiving van de schaduw gespecificeerd als een zwevend kommagetal.
  • android: shadowDy De verticale offset van de schaduw gespecificeerd als een zwevend kommagetal.

De getallen met drijvende komma hebben geen specifieke eenheid - het zijn slechts arbitraire factoren.

 

Aangepaste lettertypen gebruiken

Ten slotte gaan we het proces van het gebruik van aangepaste lettertypen onderzoeken. We zullen dit lettertype gebruiken voor demonstratiedoeleinden. Download het en plaats het TTF-bestand in de map ./assets (maak het aan als het nog niet bestaat).

We gaan een standaard lay-outbestand gebruiken met een TextView, gemarkeerd met een id van "custom_font", zodat we er toegang toe hebben in onze code.

    

Open uw hoofdactiviteitsbestand en voeg dit toe aan de methode onCreate ():

 TextView txt = (TextView) findViewById (R.id.custom_font); Lettertype lettertype = Typeface.createFromAsset (getAssets (), "Chantelli_Antiqua.ttf"); txt.setTypeface (lettertype);

De Typeface klasse bevat een statische buildermethode createFromAsset, waarbij een AssetManager de eerste parameter is en een pad naar het bestand in het tweede argument. We geven het de standaard activabeheer en de naam van het lettertypebestand omdat het zich in de hoofdmap van de map "assets" bevindt. Zodra we een exemplaar van ons aangepaste lettertype hebben, resteert alleen nog de methode setTypeface () van TextView. Eenvoudig, huh? Het kan ook verstandig zijn om uw lettertypen te ordenen in een subdirectory als uw map met items vol zit met andere bestanden.

Er zijn echter een paar potentiële problemen die aangepaste lettertypen met zich meebrengen. Ellipsizing werkt mogelijk niet correct als het lettertype geen glyph bevat voor het speciale ellips-teken en internationalisatie mogelijk niet wordt ondersteund, omdat uw lettertype elke taal moet afhandelen die gebruikers kunnen invoeren. U wilt ook de totale grootte van uw aangepaste lettertypen in de gaten houden, omdat deze vrij groot kan worden als u veel verschillende lettertypen gebruikt.

Conclusie

Deze snelle tip heeft u de verschillende opties getoond die voor u beschikbaar zijn om standaard Droid-lettertypen aan te passen. U hebt ook geleerd hoe u aangepaste lettertypen in uw toepassing kunt opnemen en gebruiken. Vergeet niet om ervoor te zorgen dat elk aangepast lettertype dat u gebruikt, een licentie heeft die u toestemming verleent om het voor deze doeleinden te gebruiken!