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 |
| 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 . |
| 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 . |
| 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. |