Font
class Font
| kotlin.Any | |
| ↳ | android.graphics.fonts.Font | 
A font class can be used for creating FontFamily.
Summary
| Nested classes | |
|---|---|
| 
            
             A builder class for creating new Font.  | 
        |
| Public methods | |
|---|---|
| Boolean | 
            
             Indicates whether some other object is "equal to" this one.  | 
        
| Array<FontVariationAxis!>? | 
            getAxes()Get a font variation settings associated with this font  | 
        
| ByteBuffer | 
            
             Returns a font file buffer.  | 
        
| File? | 
            getFile()Returns a file path of this font.  | 
        
| Float | 
            getGlyphBounds(glyphId: Int, paint: Paint, outBoundingBox: RectF?)Retrieve the glyph horizontal advance and bounding box.  | 
        
| LocaleList | 
            
             Get a locale list of this font.  | 
        
| Unit | 
            getMetrics(paint: Paint, outMetrics: Paint.FontMetrics?)Retrieve the font metrics information.  | 
        
| Int | 
            
             Returns the unique ID of the source font data.  | 
        
| FontStyle | 
            getStyle()Get a style associated with this font.  | 
        
| Int | 
            
             Get a TTC index value associated with this font.  | 
        
| Int | 
            hashCode() | 
        
| String | 
            toString() | 
        
Public methods
equals
fun equals(other: Any?): Boolean
Indicates whether some other object is "equal to" this one.
 The equals method implements an equivalence relation on non-null object references: 
- It is reflexive: for any non-null reference value 
x,x.equals(x)should returntrue. - It is symmetric: for any non-null reference values 
xandy,x.equals(y)should returntrueif and only ify.equals(x)returnstrue. - It is transitive: for any non-null reference values 
x,y, andz, ifx.equals(y)returnstrueandy.equals(z)returnstrue, thenx.equals(z)should returntrue. - It is consistent: for any non-null reference values 
xandy, multiple invocations ofx.equals(y)consistently returntrueor consistently returnfalse, provided no information used inequalscomparisons on the objects is modified. - For any non-null reference value 
x,x.equals(null)should returnfalse. 
An equivalence relation partitions the elements it operates on into equivalence classes; all the members of an equivalence class are equal to each other. Members of an equivalence class are substitutable for each other, at least for some purposes.
| Parameters | |
|---|---|
obj | 
            the reference object with which to compare. | 
o | 
            This value may be null. | 
          
| Return | |
|---|---|
Boolean | 
            true if this object is the same as the obj argument; false otherwise. | 
          
getAxes
fun getAxes(): Array<FontVariationAxis!>?
Get a font variation settings associated with this font
| Return | |
|---|---|
Array<FontVariationAxis!>? | 
            font variation settings This value may be null. | 
          
getBuffer
fun getBuffer(): ByteBuffer
Returns a font file buffer. Duplicate before reading values by ByteBuffer.duplicate() for avoiding unexpected reading position sharing.
| Return | |
|---|---|
ByteBuffer | 
            a font buffer This value cannot be null. | 
          
getFile
fun getFile(): File?
Returns a file path of this font. This returns null if this font is not created from regular file.
| Return | |
|---|---|
File? | 
            a file path of the font | 
getGlyphBounds
fun getGlyphBounds(
glyphId: Int,
paint: Paint,
outBoundingBox: RectF?
): Float
Retrieve the glyph horizontal advance and bounding box. Note that android.graphics.Typeface in android.graphics.Paint is ignored.
| Parameters | |
|---|---|
glyphId | 
            Int: a glyph ID Value is 0 or greater | 
paint | 
            Paint: a paint object used for resolving glyph style This value cannot be null. | 
          
outBoundingBox | 
            RectF?: a nullable destination object. If null is passed, this function just return the horizontal advance. If non-null is passed, this function fills bounding box information to this object. | 
| Return | |
|---|---|
Float | 
            the amount of horizontal advance in pixels | 
getLocaleList
fun getLocaleList(): LocaleList
Get a locale list of this font. This is always empty if this font is not a system font.
| Return | |
|---|---|
LocaleList | 
            a locale list This value cannot be null. | 
          
getMetrics
fun getMetrics(
paint: Paint,
outMetrics: Paint.FontMetrics?
): Unit
Retrieve the font metrics information. Note that android.graphics.Typeface in android.graphics.Paint is ignored.
| Parameters | |
|---|---|
paint | 
            Paint: a paint object used for retrieving font metrics. This value cannot be null. | 
          
outMetrics | 
            Paint.FontMetrics?: a nullable destination object. If null is passed, this function only retrieve recommended interline spacing. If non-null is passed, this function fills to font metrics to it. | 
getSourceIdentifier
fun getSourceIdentifier(): Int
Returns the unique ID of the source font data. You can use this identifier as a key of the cache or checking if two fonts can be interpolated with font variation settings.
<code> // Following three Fonts, fontA, fontB, fontC have the same identifier. Font fontA = new Font.Builder("/path/to/font").build(); Font fontB = new Font.Builder(fontA).setTtcIndex(1).build(); Font fontC = new Font.Builder(fontB).setFontVariationSettings("'wght' 700).build(); // Following fontD has the different identifier from above three. Font fontD = new Font.Builder("/path/to/another/font").build(); // Following fontE has different identifier from above four even the font path is the same. // To get the same identifier, please create new Font instance from existing fonts. Font fontE = new Font.Builder("/path/to/font").build(); </code>
<code> private LongSparseArray <sparsearray<font> > mCache = new LongSparseArray<>(); private Font getFontWeightVariation(Font font, int weight) { // Different collection index is treated as different font. long key = ((long) font.getSourceIdentifier()) << 32 | (long) font.getTtcIndex(); SparseArray <font> weightCache = mCache.get(key); if (weightCache == null) { weightCache = new SparseArray<>(); mCache.put(key, weightCache); } Font cachedFont = weightCache.get(weight); if (cachedFont != null) { return cachedFont; } Font newFont = new Font.Builder(cachedFont) .setFontVariationSettings("'wght' " + weight); .build(); weightCache.put(weight, newFont); return newFont; } </font> </sparsearray<font></code><font> </font>
| Return | |
|---|---|
Int | 
            an unique identifier for the font source data. | 
getStyle
fun getStyle(): FontStyle
Get a style associated with this font.
| Return | |
|---|---|
FontStyle | 
            a font style This value cannot be null. | 
          
getTtcIndex
fun getTtcIndex(): Int
Get a TTC index value associated with this font. If TTF/OTF file is provided, this value is always 0.
| Return | |
|---|---|
Int | 
            a TTC index value Value is 0 or greater | 
toString
fun toString(): String
| Return | |
|---|---|
String | 
            a string representation of the object. |