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()Returns a hash code value for the object. |
| String |
toString()Returns a string representation of the object. |
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 |
hashCode
fun hashCode(): Int
Returns a hash code value for the object. This method is supported for the benefit of hash tables such as those provided by java.util.HashMap.
The general contract of hashCode is:
- Whenever it is invoked on the same object more than once during an execution of a Java application, the
hashCodemethod must consistently return the same integer, provided no information used inequalscomparisons on the object is modified. This integer need not remain consistent from one execution of an application to another execution of the same application. - If two objects are equal according to the
equalsmethod, then calling thehashCodemethod on each of the two objects must produce the same integer result. - It is not required that if two objects are unequal according to the
equalsmethod, then calling thehashCodemethod on each of the two objects must produce distinct integer results. However, the programmer should be aware that producing distinct integer results for unequal objects may improve the performance of hash tables.
| Return | |
|---|---|
Int |
a hash code value for this object. |
toString
fun toString(): String
Returns a string representation of the object.
| Return | |
|---|---|
String |
a string representation of the object. |