android 国际化及文本渲染框架[0] --- java scope
android 拥有一个比较复杂的国际化及文本渲染框架,包含有从java -> JNI -> C/C++ 的非常庞大的code。
在Java层,主要包含如下的一些package及classes:
android.graphics |
android.text |
android.text.format |
java.text |
java.util(partial) |
java.util.regex |
package
android.graphics
Classes
Canvas | The Canvas class holds the "draw" calls. |
Paint | The Paint class holds the style and color information about how to draw geometries, text and bitmaps. |
Paint.FontMetrics | Class that describes the various metrics for a font at a given text size. |
Paint.FontMetricsInt | Convenience method for callers that want to have FontMetrics values as integers. |
PaintFlagsDrawFilter | |
Path | The Path class encapsulates compound (multiple contour) geometric paths consisting of straight line segments, quadratic curves, and cubic curves. |
PathEffect | PathEffect is the base class for objects in the Paint that affect the geometry of a drawing primitive before it is transformed by the canvas' matrix and drawn. |
Picture | A picture records drawing calls (via the canvas returned by beginRecording) and can then play them back (via picture.draw(canvas) or canvas.drawPicture). |
Typeface | The Typeface class specifies the typeface and intrinsic style of a font. |
package
android.text
Interfaces
Editable | This is the interface for text whose content and markup can be changed (as opposed to immutable text like Strings). |
GetChars | Please implement this interface if your CharSequence has a getChars() method like the one in String that is faster than calling charAt() multiple times. |
Html.ImageGetter | Retrieves images for HTML tags. |
Html.TagHandler | Is notified when HTML tags are encountered that the parser does not know how to interpret. |
InputFilter | InputFilters can be attached to Editables to constrain the changes that can be made to them. |
InputType | Bit definitions for an integer defining the basic content type of text held in an Editable object. |
NoCopySpan | This interface should be added to a span object that should not be copied into a new Spenned when performing a slice or copy operation on the original Spanned it was placed in. |
ParcelableSpan | A special kind of Parcelable for objects that will serve as text spans. |
Spannable | This is the interface for text to which markup objects can be attached and detached. |
Spanned | This is the interface for text that has markup objects attached to ranges of it. |
SpanWatcher | When an object of this type is attached to a Spannable, its methods will be called to notify it that other markup objects have been added, changed, or removed. |
TextUtils.EllipsizeCallback | |
TextUtils.StringSplitter | An interface for splitting strings according to rules that are opaque to the user of this interface. |
TextWatcher | When an object of a type is attached to an Editable, its methods will be called when the text is changed. |
Classes
AlteredCharSequence | An AlteredCharSequence is a CharSequence that is largely mirrored from another CharSequence, except that a specified range of characters are mirrored from a different char array instead. |
AndroidCharacter | AndroidCharacter exposes some character properties that are not easily accessed from java.lang.Character. |
Annotation | Annotations are simple key-value pairs that are preserved across TextView save/restore cycles and can be used to keep application-specific data that needs to be maintained for regions of text. |
AutoText | This class accesses a dictionary of corrections to frequent misspellings. |
BoringLayout | A BoringLayout is a very simple Layout implementation for text that fits on a single line and is all left-to-right characters. |
BoringLayout.Metrics | |
ClipboardManager | This class is deprecated. Old text-only interface to the clipboard. See ClipboardManager for the modern API. |
DynamicLayout | DynamicLayout is a text layout that updates itself as the text is edited. |
Editable.Factory | Factory used by TextView to create new Editables. |
Html | This class processes HTML strings into displayable styled text. |
InputFilter.AllCaps | This filter will capitalize all the lower case letters that are added through edits. |
InputFilter.LengthFilter | This filter will constrain edits not to make the length of the text greater than the specified length. |
Layout | A base class that manages text layout in visual elements on the screen. |
Layout.Directions | Stores information about bidirectional (left-to-right or right-to-left) text within the layout of a line. |
LoginFilter | Abstract class for filtering login-related text (user names and passwords) |
LoginFilter.PasswordFilterGMail | This filter is compatible with GMail passwords which restricts characters to the Latin-1 (ISO8859-1) char set. |
LoginFilter.UsernameFilterGeneric | This filter rejects characters in the user name that are not compatible with Google login. |
LoginFilter.UsernameFilterGMail | This filter rejects characters in the user name that are not compatible with GMail account creation. |
NoCopySpan.Concrete | Convenience equivalent for when you would just want a new Object() for a span but want it to be no-copy. |
Selection | Utility class for manipulating cursors and selections in CharSequences. |
Spannable.Factory | Factory used by TextView to create new Spannables. |
SpannableString | This is the class for text whose content is immutable but to which markup objects can be attached and detached. |
SpannableStringBuilder | This is the class for text whose content and markup can both be changed. |
SpannedString | This is the class for text whose content and markup are immutable. |
StaticLayout | StaticLayout is a Layout for text that will not be edited after it is laid out. |
TextPaint | TextPaint is an extension of Paint that leaves room for some extra data used during text measuring and drawing. |
TextUtils | |
TextUtils.SimpleStringSplitter | A simple string splitter. |
Enums
package
android.text.format
Classes
DateFormat | Utility class for producing strings with formatted date/time. |
DateUtils | This class contains various date-related utilities for creating text for things like elapsed time and date ranges, strings for days of the week and months, and AM/PM text etc. |
Formatter | Utility class to aid in formatting common values that are not covered by the Formatter class in java.util |
Time | An alternative to the Calendar and GregorianCalendar classes. |
package
java.text
Interfaces
AttributedCharacterIterator | Extends the CharacterIterator interface, adding support for iterating over attributes and not only characters. |
CharacterIterator | An interface for the bidirectional iteration over a group of characters. |
Classes
Annotation | Wrapper for a text attribute value which represents an annotation. |
AttributedCharacterIterator.Attribute | Defines keys for text attributes. |
AttributedString | Holds a string with attributes describing the characters of this string. |
Bidi | Implements the Unicode Bidirectional Algorithm. |
BreakIterator | Locates boundaries in text. |
ChoiceFormat | Returns a fixed string based on a numeric value. |
CollationElementIterator | Created by a RuleBasedCollator to iterate through a string. |
CollationKey | Represents a string under the rules of a specific Collator object. |
Collator | Performs locale-sensitive string comparison. |
DateFormat | An abstract class for date/time formatting subclasses which formats and parses dates or time in a language-independent manner. |
DateFormat.Field | The instances of this inner class are used as attribute keys and values in AttributedCharacterIteratorthat the formatToCharacterIterator(Object) method returns. |
DateFormatSymbols | Encapsulates localized date-time formatting data, such as the names of the months, the names of the days of the week, and the time zone data. |
DecimalFormat | A concrete subclass of NumberFormat that formats decimal numbers. |
DecimalFormatSymbols | Encapsulates the set of symbols (such as the decimal separator, the grouping separator, and so on) needed by DecimalFormat to format numbers. |
FieldPosition | Identifies fields in formatted strings. |
Format | The base class for all formats. |
Format.Field | Inner class used to represent Format attributes in the AttributedCharacterIterator that theformatToCharacterIterator() method returns in Format subclasses. |
MessageFormat | Produces concatenated messages in language-neutral way. |
MessageFormat.Field | The instances of this inner class are used as attribute keys in AttributedCharacterIterator that theformatToCharacterIterator(Object) method returns. |
Normalizer | Provides normalization functions according to Unicode Standard Annex #15: Unicode Normalization Forms. |
NumberFormat | The abstract base class for all number formats. |
NumberFormat.Field | The instances of this inner class are used as attribute keys and values in AttributedCharacterIteratorthat the formatToCharacterIterator(Object) method returns. |
ParsePosition | Tracks the current position in a parsed string. |
RuleBasedCollator | A concrete implementation class for Collation. |
SimpleDateFormat | A concrete class for formatting and parsing dates in a locale-sensitive manner. |
StringCharacterIterator | An implementation of CharacterIterator for strings. |
Enums
Normalizer.Form | The normalization forms supported by the Normalizer. |
Exceptions
ParseException | Thrown when the string being parsed is not in the correct form. |
package
java.util(partial)
Classes
Calendar | Calendar is an abstract base class for converting between a Date object and a set of integer fields such as YEAR, MONTH, DAY, HOUR, and so on. |
GregorianCalendar | GregorianCalendar is a concrete subclass of Calendar and provides the standard calendar used by most of the world. |
ListResourceBundle | ListResourceBundle is the abstract superclass of classes which provide resources by implementing the getContents() method to return the list of resources. |
Locale | Locale represents a language/country/variant combination. |
ResourceBundle | ResourceBundle is an abstract class which is the superclass of classes which provide Locale-specific resources. |
ResourceBundle.Control | ResourceBundle.Control is a static utility class defines ResourceBundle load access methods, its default access order is as the same as before. |
SimpleTimeZone | SimpleTimeZone is a concrete subclass of TimeZone that represents a time zone for use with a Gregorian calendar. |
TimeZone | TimeZone represents a time zone, primarily used for configuring a Calendar or SimpleDateFormatinstance. |
package
java.util.regex
Interfaces
MatchResult | Holds the results of a successful match of a Pattern against a given string. |
Classes
Matcher | The result of applying a Pattern to a given input. |
Pattern | Patterns are compiled regular expressions. |
Exceptions
PatternSyntaxException | Encapsulates a syntax error that occurred during the compilation of a Pattern. |