LineBreakConfig
public
final
class
LineBreakConfig
extends Object
implements
Parcelable
java.lang.Object | |
↳ | android.graphics.text.LineBreakConfig |
Specifies the line-break strategies for text wrapping.
See the line-break property for more information.
Summary
Nested classes | |
---|---|
class |
LineBreakConfig.Builder
A builder for creating a |
Constants | |
---|---|
int |
HYPHENATION_DISABLED
The hyphenation is disabled. |
int |
HYPHENATION_ENABLED
The hyphenation is enabled. |
int |
HYPHENATION_UNSPECIFIED
No hyphenation preference is specified. |
int |
LINE_BREAK_STYLE_AUTO
A special value for the line breaking style option. |
int |
LINE_BREAK_STYLE_LOOSE
The least restrictive line-break rules are used for line breaking. |
int |
LINE_BREAK_STYLE_NONE
No line-break rules are used for line breaking. |
int |
LINE_BREAK_STYLE_NORMAL
The most common line-break rules are used for line breaking. |
int |
LINE_BREAK_STYLE_NO_BREAK
The line break style that used for preventing automatic line breaking. |
int |
LINE_BREAK_STYLE_STRICT
The most strict line-break rules are used for line breaking. |
int |
LINE_BREAK_STYLE_UNSPECIFIED
No line break style is specified. |
int |
LINE_BREAK_WORD_STYLE_AUTO
A special value for the line breaking word style option. |
int |
LINE_BREAK_WORD_STYLE_NONE
No line-break word style is used for line breaking. |
int |
LINE_BREAK_WORD_STYLE_PHRASE
Line breaking is based on phrases, which results in text wrapping only on meaningful words. |
int |
LINE_BREAK_WORD_STYLE_UNSPECIFIED
No line break word style is specified. |
Inherited constants |
---|
Fields | |
---|---|
public
static
final
Creator<LineBreakConfig> |
CREATOR
|
Public methods | |
---|---|
int
|
describeContents()
Describe the kinds of special objects contained in this Parcelable instance's marshaled representation. |
boolean
|
equals(Object o)
Indicates whether some other object is "equal to" this one. |
int
|
getHyphenation()
Returns a hyphenation preference. |
int
|
getLineBreakStyle()
Gets the current line-break style. |
int
|
getLineBreakWordStyle()
Gets the current line-break word style. |
int
|
hashCode()
Returns a hash code value for the object. |
LineBreakConfig
|
merge(LineBreakConfig config)
Generates a new |
String
|
toString()
Returns a string representation of the object. |
void
|
writeToParcel(Parcel dest, int flags)
Flatten this object in to a Parcel. |
Inherited methods | |
---|---|
Constants
HYPHENATION_DISABLED
public static final int HYPHENATION_DISABLED
The hyphenation is disabled.
Constant Value: 0 (0x00000000)
HYPHENATION_ENABLED
public static final int HYPHENATION_ENABLED
The hyphenation is enabled.
Note: Even if the hyphenation is enabled with a line break strategy
LineBreaker#BREAK_STRATEGY_SIMPLE
, the hyphenation will not be performed unless a
single word cannot meet width constraints.
Constant Value: 1 (0x00000001)
HYPHENATION_UNSPECIFIED
public static final int HYPHENATION_UNSPECIFIED
No hyphenation preference is specified.
This is a special value of hyphenation preference indicating no hyphenation preference is
specified. When overriding a LineBreakConfig
with another LineBreakConfig
with Builder#merge(LineBreakConfig)
function, the hyphenation preference of
overridden config will be kept if the hyphenation preference of overriding config is
HYPHENATION_UNSPECIFIED
.
val override = LineBreakConfig.Builder() .setLineBreakWordStyle(LineBreakConfig.LINE_BREAK_WORD_STYLE_PHRASE) .build(); // UNSPECIFIED if no setHyphenation is called. val config = LineBreakConfig.Builder() .setHyphenation(LineBreakConfig.HYPHENATION_DISABLED) .merge(override) .build() // Here, config has HYPHENATION_DISABLED for line break config and // LINE_BREAK_WORD_STYLE_PHRASE for line break word style.
This value is resolved to HYPHENATION_ENABLED
if this value is used for text
layout/rendering.
Constant Value: -1 (0xffffffff)
LINE_BREAK_STYLE_AUTO
public static final int LINE_BREAK_STYLE_AUTO
A special value for the line breaking style option.
The auto option for the line break style set the line break style based on the locale of the
text rendering context. You can specify the context locale by
TextView.setTextLocales(LocaleList)
or
Paint.setTextLocales(LocaleList)
.
In the API Build.VERSION_CODES#VANILLA_ICE_CREAM
, auto option does followings:
- If at least one locale in the locale list contains Japanese script, this option is
equivalent to LINE_BREAK_STYLE_STRICT
.
- Otherwise, this option is equivalent to LINE_BREAK_STYLE_NONE
.
Note: future versions may have special line breaking style rules for other locales.
Constant Value: 5 (0x00000005)
LINE_BREAK_STYLE_LOOSE
public static final int LINE_BREAK_STYLE_LOOSE
The least restrictive line-break rules are used for line breaking. This setting is typically used for short lines.
Constant Value: 1 (0x00000001)
LINE_BREAK_STYLE_NONE
public static final int LINE_BREAK_STYLE_NONE
No line-break rules are used for line breaking.
Constant Value: 0 (0x00000000)
LINE_BREAK_STYLE_NORMAL
public static final int LINE_BREAK_STYLE_NORMAL
The most common line-break rules are used for line breaking.
Constant Value: 2 (0x00000002)
LINE_BREAK_STYLE_NO_BREAK
public static final int LINE_BREAK_STYLE_NO_BREAK
The line break style that used for preventing automatic line breaking.
This is useful when you want to preserve some words in the same line by using
LineBreakConfigSpan
or
LineBreakConfigSpan.createNoBreakSpan()
as a shorthand.
Note that even if this style is specified, the grapheme based line break is still performed
for preventing clipping text.
Constant Value: 4 (0x00000004)
LINE_BREAK_STYLE_STRICT
public static final int LINE_BREAK_STYLE_STRICT
The most strict line-break rules are used for line breaking.
Constant Value: 3 (0x00000003)
LINE_BREAK_STYLE_UNSPECIFIED
public static final int LINE_BREAK_STYLE_UNSPECIFIED
No line break style is specified.
This is a special value of line break style indicating no style value is specified.
When overriding a LineBreakConfig
with another LineBreakConfig
with
Builder#merge(LineBreakConfig)
function, the line break style of overridden config
will be kept if the line break style of overriding config is
LINE_BREAK_STYLE_UNSPECIFIED
.
val override = LineBreakConfig.Builder() .setLineBreakWordStyle(LineBreakConfig.LINE_BREAK_WORD_STYLE_PHRASE) .build(); // UNSPECIFIED if no setLineBreakStyle is called. val config = LineBreakConfig.Builder() .setLineBreakStyle(LineBreakConfig.LINE_BREAK_STYLE_STRICT) .merge(override) .build() // Here, config has LINE_BREAK_STYLE_STRICT for line break config and // LINE_BREAK_WORD_STYLE_PHRASE for line break word style.
This value is resolved to LINE_BREAK_STYLE_NONE
if the target SDK version is API
Build.VERSION_CODES#UPSIDE_DOWN_CAKE
or before and this value is used for text
layout/rendering. This value is resolved to LINE_BREAK_STYLE_AUTO
if the target SDK
version is API Build.VERSION_CODES#VANILLA_ICE_CREAM
or after and this value is
used for text layout/rendering.
Constant Value: -1 (0xffffffff)
LINE_BREAK_WORD_STYLE_AUTO
public static final int LINE_BREAK_WORD_STYLE_AUTO
A special value for the line breaking word style option.
The auto option for the line break word style does some heuristics based on locales and line count.
In the API Build.VERSION_CODES#VANILLA_ICE_CREAM
, auto option does followings:
- If at least one locale in the locale list contains Korean script, this option is equivalent
to LINE_BREAK_WORD_STYLE_PHRASE
.
- If not, then if at least one locale in the locale list contains Japanese script, this
option is equivalent to LINE_BREAK_WORD_STYLE_PHRASE
if the result of its line
count is less than 5 lines.
- Otherwise, this option is equivalent to LINE_BREAK_WORD_STYLE_NONE
.
Note: future versions may have special line breaking word style rules for other locales.
Constant Value: 2 (0x00000002)
LINE_BREAK_WORD_STYLE_NONE
public static final int LINE_BREAK_WORD_STYLE_NONE
No line-break word style is used for line breaking.
Constant Value: 0 (0x00000000)
LINE_BREAK_WORD_STYLE_PHRASE
public static final int LINE_BREAK_WORD_STYLE_PHRASE
Line breaking is based on phrases, which results in text wrapping only on meaningful words.
Support for this line-break word style depends on locale. If the current locale does not support phrase-based text wrapping, this setting has no effect.
Constant Value: 1 (0x00000001)
LINE_BREAK_WORD_STYLE_UNSPECIFIED
public static final int LINE_BREAK_WORD_STYLE_UNSPECIFIED
No line break word style is specified.
This is a special value of line break word style indicating no style value is specified.
When overriding a LineBreakConfig
with another LineBreakConfig
with
Builder#merge(LineBreakConfig)
function, the line break word style of overridden
config will be kept if the line break word style of overriding config is
LINE_BREAK_WORD_STYLE_UNSPECIFIED
.
val override = LineBreakConfig.Builder() .setLineBreakStyle(LineBreakConfig.LINE_BREAK_STYLE_STRICT) .build(); // UNSPECIFIED if no setLineBreakWordStyle is called. val config = LineBreakConfig.Builder() .setLineBreakWordStyle(LineBreakConfig.LINE_BREAK_WORD_STYLE_PHRASE) .merge(override) .build() // Here, config has LINE_BREAK_STYLE_STRICT for line break config and // LINE_BREAK_WORD_STYLE_PHRASE for line break word style.
LINE_BREAK_WORD_STYLE_NONE
if the target SDK version is
API Build.VERSION_CODES#UPSIDE_DOWN_CAKE
or before and this value is used for text
layout/rendering. This value is resolved to LINE_BREAK_WORD_STYLE_AUTO
if the target
SDK version is API Build.VERSION_CODES#VANILLA_ICE_CREAM
or after and this value is
used for text layout/rendering.
Constant Value: -1 (0xffffffff)
Fields
Public methods
describeContents
public int describeContents ()
Describe the kinds of special objects contained in this Parcelable
instance's marshaled representation. For example, if the object will
include a file descriptor in the output of writeToParcel(android.os.Parcel, int)
,
the return value of this method must include the
CONTENTS_FILE_DESCRIPTOR
bit.
Returns | |
---|---|
int |
a bitmask indicating the set of special object types marshaled
by this Parcelable object instance.
Value is either 0 or CONTENTS_FILE_DESCRIPTOR |
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 : the reference object with which to compare. |
Returns | |
---|---|
boolean |
true if this object is the same as the obj
argument; false otherwise. |
getHyphenation
public int getHyphenation ()
Returns a hyphenation preference.
Returns | |
---|---|
int |
A hyphenation preference.
Value is HYPHENATION_UNSPECIFIED , HYPHENATION_ENABLED , or HYPHENATION_DISABLED |
getLineBreakStyle
public int getLineBreakStyle ()
Gets the current line-break style.
Returns | |
---|---|
int |
The line-break style to be used for text wrapping.
Value is LINE_BREAK_STYLE_NONE , LINE_BREAK_STYLE_LOOSE , LINE_BREAK_STYLE_NORMAL , LINE_BREAK_STYLE_STRICT , LINE_BREAK_STYLE_UNSPECIFIED , LINE_BREAK_STYLE_NO_BREAK , or LINE_BREAK_STYLE_AUTO |
getLineBreakWordStyle
public int getLineBreakWordStyle ()
Gets the current line-break word style.
Returns | |
---|---|
int |
The line-break word style to be used for text wrapping.
Value is LINE_BREAK_WORD_STYLE_NONE , LINE_BREAK_WORD_STYLE_PHRASE , LINE_BREAK_WORD_STYLE_UNSPECIFIED , or LINE_BREAK_WORD_STYLE_AUTO |
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. |
merge
public LineBreakConfig merge (LineBreakConfig config)
Generates a new LineBreakConfig
instance merged with given config
.
If values of passing config
are unspecified, the original values are kept. For
example, the following code shows how line break config is merged.
val override = LineBreakConfig.Builder() .setLineBreakWordStyle(LineBreakConfig.LINE_BREAK_WORD_STYLE_PHRASE) .build(); // UNSPECIFIED if no setLineBreakStyle is called. val config = LineBreakConfig.Builder() .setLineBreakStyle(LineBreakConfig.LINE_BREAK_STYLE_STRICT) .build(); val newConfig = config.merge(override) // newConfig has LINE_BREAK_STYLE_STRICT of line break style and LINE_BREAK_WORD_STYLE_PHRASE of line break word style.
Parameters | |
---|---|
config |
LineBreakConfig : an overriding config.
This value cannot be null . |
Returns | |
---|---|
LineBreakConfig |
newly created instance that is current style merged with passed config.
This value cannot be null . |
toString
public String toString ()
Returns a string representation of the object.
Returns | |
---|---|
String |
a string representation of the object. |
writeToParcel
public void writeToParcel (Parcel dest, int flags)
Flatten this object in to a Parcel.
Parameters | |
---|---|
dest |
Parcel : This value cannot be null . |
flags |
int : Additional flags about how the object should be written.
May be 0 or Parcelable.PARCELABLE_WRITE_RETURN_VALUE .
Value is either 0 or a combination of Parcelable.PARCELABLE_WRITE_RETURN_VALUE , and android.os.Parcelable.PARCELABLE_ELIDE_DUPLICATES |
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-06-18 UTC.