Font
public
final
class
Font
extends Object
java.lang.Object | |
↳ | android.graphics.fonts.Font |
A font class can be used for creating FontFamily.
Summary
Nested classes | |
---|---|
class |
Font.Builder
A builder class for creating new Font. |
Public methods | |
---|---|
boolean
|
equals(Object o)
Indicates whether some other object is "equal to" this one. |
FontVariationAxis[]
|
getAxes()
Get a font variation settings associated with this font |
ByteBuffer
|
getBuffer()
Returns a font file buffer. |
File
|
getFile()
Returns a file path of this font. |
float
|
getGlyphBounds(int glyphId, Paint paint, RectF outBoundingBox)
Retrieve the glyph horizontal advance and bounding box. |
LocaleList
|
getLocaleList()
Get a locale list of this font. |
void
|
getMetrics(Paint paint, Paint.FontMetrics outMetrics)
Retrieve the font metrics information. |
int
|
getSourceIdentifier()
Returns the unique ID of the source font data. |
FontStyle
|
getStyle()
Get a style associated with this font. |
int
|
getTtcIndex()
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. |
Inherited methods | |
---|---|
Public methods
equals
public boolean equals (Object o)
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
x
andy
,x.equals(y)
should returntrue
if and only ify.equals(x)
returnstrue
. - It is transitive: for any non-null reference values
x
,y
, andz
, ifx.equals(y)
returnstrue
andy.equals(z)
returnstrue
, thenx.equals(z)
should returntrue
. - It is consistent: for any non-null reference values
x
andy
, multiple invocations ofx.equals(y)
consistently returntrue
or consistently returnfalse
, provided no information used inequals
comparisons 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 | |
---|---|
o |
Object : This value may be null . |
Returns | |
---|---|
boolean |
true if this object is the same as the obj
argument; false otherwise. |
getAxes
public FontVariationAxis[] getAxes ()
Get a font variation settings associated with this font
Returns | |
---|---|
FontVariationAxis[] |
font variation settings
This value may be null . |
getBuffer
public ByteBuffer getBuffer ()
Returns a font file buffer.
Duplicate before reading values by ByteBuffer#duplicate()
for avoiding unexpected
reading position sharing.
Returns | |
---|---|
ByteBuffer |
a font buffer
This value cannot be null . |
getFile
public File getFile ()
Returns a file path of this font. This returns null if this font is not created from regular file.
Returns | |
---|---|
File |
a file path of the font |
getGlyphBounds
public float getGlyphBounds (int glyphId, Paint paint, RectF outBoundingBox)
Retrieve the glyph horizontal advance and bounding box.
Note that Typeface
in 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. |
Returns | |
---|---|
float |
the amount of horizontal advance in pixels |
getLocaleList
public LocaleList getLocaleList ()
Get a locale list of this font. This is always empty if this font is not a system font.
Returns | |
---|---|
LocaleList |
a locale list
This value cannot be null . |
getMetrics
public void getMetrics (Paint paint, Paint.FontMetrics outMetrics)
Retrieve the font metrics information.
Note that Typeface
in 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
public int getSourceIdentifier ()
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.
// 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();
Here is an example of caching font object that has
private LongSparseArray> 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 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;
}
Returns | |
---|---|
int |
an unique identifier for the font source data. |
getStyle
public FontStyle getStyle ()
Get a style associated with this font.
Returns | |
---|---|
FontStyle |
a font style
This value cannot be null . |
getTtcIndex
public int getTtcIndex ()
Get a TTC index value associated with this font. If TTF/OTF file is provided, this value is always 0.
Returns | |
---|---|
int |
a TTC index value Value is 0 or greater |
See also:
hashCode
public int hashCode ()
Returns a hash code value for the object. This method is
supported for the benefit of hash tables such as those provided by
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
hashCode
method must consistently return the same integer, provided no information used inequals
comparisons 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
equals
method, then calling thehashCode
method 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
equals
method, then calling thehashCode
method 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.
Returns | |
---|---|
int |
a hash code value for this object. |
toString
public String toString ()
Returns a string representation of the object.
Returns | |
---|---|
String |
a string representation of the object. |
Content and code samples on this page are subject to the licenses described in the Content License. Java and OpenJDK are trademarks or registered trademarks of Oracle and/or its affiliates.
Last updated 2024-04-11 UTC.