public static class

Keyboard.Key

extends Object
java.lang.Object
   ↳ android.inputmethodservice.Keyboard.Key

Class Overview

Class for describing the position and characteristics of a single key in the keyboard.

Summary

XML Attributes
Attribute Name Related Method Description
android:codes The unicode value or comma-separated values that this key outputs

May be a string value, using '\\;' to escape characters such as '\\n' or '\\uxxxx' for a unicode character. 

android:horizontalGap Default horizontal gap between keys

May be a dimension value, which is a floating point number appended with a unit such as "14.5sp". 

android:iconPreview The icon to show in the popup preview

Must be a reference to another resource, in the form "@[+][package:]type:name" or to a theme attribute in the form "?[package:][type:]name". 

android:isModifier Whether this is a modifier key such as Alt or Shift

Must be a boolean value, either "true" or "false". 

android:isRepeatable Whether long-pressing on this key will make it repeat

Must be a boolean value, either "true" or "false". 

android:isSticky Whether this is a toggle key

Must be a boolean value, either "true" or "false". 

android:keyEdgeFlags Key edge flags

Must be one or more (separated by '|') of the following constant values. 

android:keyHeight Default height of a key, in pixels or percentage of display width

May be a dimension value, which is a floating point number appended with a unit such as "14.5sp". 

android:keyIcon The icon to display on the key instead of the label

Must be a reference to another resource, in the form "@[+][package:]type:name" or to a theme attribute in the form "?[package:][type:]name". 

android:keyLabel The label to display on the key

Must be a string value, using '\\;' to escape characters such as '\\n' or '\\uxxxx' for a unicode character. 

android:keyOutputText The string of characters to output when this key is pressed

Must be a string value, using '\\;' to escape characters such as '\\n' or '\\uxxxx' for a unicode character. 

android:keyWidth Default width of a key, in pixels or percentage of display width

May be a dimension value, which is a floating point number appended with a unit such as "14.5sp". 

android:popupCharacters The characters to display in the popup keyboard

Must be a string value, using '\\;' to escape characters such as '\\n' or '\\uxxxx' for a unicode character. 

android:popupKeyboard The XML keyboard layout of any popup keyboard

Must be a reference to another resource, in the form "@[+][package:]type:name" or to a theme attribute in the form "?[package:][type:]name". 

Fields
public int[] codes All the key codes (unicode or custom code) that this key could generate, zero'th being the most important.
public int edgeFlags Flags that specify the anchoring to edges of the keyboard for detecting touch events that are just out of the boundary of the key.
public int gap The horizontal gap before this key
public int height Height of the key, not including the gap
public Drawable icon Icon to display instead of a label.
public Drawable iconPreview Preview version of the icon, for the preview popup
public CharSequence label Label to display
public boolean modifier Whether this is a modifier key, such as Shift or Alt
public boolean on If this is a sticky key, is it on?
public CharSequence popupCharacters Popup characters
public int popupResId If this key pops up a mini keyboard, this is the resource id for the XML layout for that keyboard.
public boolean pressed The current pressed state of this key
public boolean repeatable Whether this key repeats itself when held down
public boolean sticky Whether this key is sticky, i.e., a toggle key
public CharSequence text Text to output when pressed.
public int width Width of the key, not including the gap
public int x X coordinate of the key in the keyboard layout
public int y Y coordinate of the key in the keyboard layout
Public Constructors
Keyboard.Key(Keyboard.Row parent)
Create an empty key with no attributes.
Keyboard.Key(Resources res, Keyboard.Row parent, int x, int y, XmlResourceParser parser)
Create a key with the given top-left coordinate and extract its attributes from the XML parser.
Public Methods
int[] getCurrentDrawableState()
Returns the drawable state for the key, based on the current state and type of the key.
boolean isInside(int x, int y)
Detects if a point falls inside this key.
void onPressed()
Informs the key that it has been pressed, in case it needs to change its appearance or state.
void onReleased(boolean inside)
Changes the pressed state of the key.
int squaredDistanceFrom(int x, int y)
Returns the square of the distance between the center of the key and the given point.
[Expand]
Inherited Methods
From class java.lang.Object

XML Attributes

android:codes

The unicode value or comma-separated values that this key outputs

May be a string value, using '\\;' to escape characters such as '\\n' or '\\uxxxx' for a unicode character.

May be an integer value, such as "100".

This may also be a reference to a resource (in the form "@[package:]type:name") or theme attribute (in the form "?[package:][type:]name") containing a value of this type.

This corresponds to the global attribute resource symbol codes.

Related Methods

android:horizontalGap

Default horizontal gap between keys

May be a dimension value, which is a floating point number appended with a unit such as "14.5sp". Available units are: px (pixels), dp (density-independent pixels), sp (scaled pixels based on preferred font size), in (inches), mm (millimeters).

May be a fractional value, which is a floating point number appended with either % or %p, such as "14.5%". The % suffix always means a percentage of the base size; the optional %p suffix provides a size relative to some parent container.

This may also be a reference to a resource (in the form "@[package:]type:name") or theme attribute (in the form "?[package:][type:]name") containing a value of this type.

This corresponds to the global attribute resource symbol horizontalGap.

Related Methods

android:iconPreview

The icon to show in the popup preview

Must be a reference to another resource, in the form "@[+][package:]type:name" or to a theme attribute in the form "?[package:][type:]name".

This corresponds to the global attribute resource symbol iconPreview.

Related Methods

android:isModifier

Whether this is a modifier key such as Alt or Shift

Must be a boolean value, either "true" or "false".

This may also be a reference to a resource (in the form "@[package:]type:name") or theme attribute (in the form "?[package:][type:]name") containing a value of this type.

This corresponds to the global attribute resource symbol isModifier.

Related Methods

android:isRepeatable

Whether long-pressing on this key will make it repeat

Must be a boolean value, either "true" or "false".

This may also be a reference to a resource (in the form "@[package:]type:name") or theme attribute (in the form "?[package:][type:]name") containing a value of this type.

This corresponds to the global attribute resource symbol isRepeatable.

Related Methods

android:isSticky

Whether this is a toggle key

Must be a boolean value, either "true" or "false".

This may also be a reference to a resource (in the form "@[package:]type:name") or theme attribute (in the form "?[package:][type:]name") containing a value of this type.

This corresponds to the global attribute resource symbol isSticky.

Related Methods

android:keyEdgeFlags

Key edge flags

Must be one or more (separated by '|') of the following constant values.

ConstantValueDescription
left1 Key is anchored to the left of the keyboard
right2 Key is anchored to the right of the keyboard

This corresponds to the global attribute resource symbol keyEdgeFlags.

Related Methods

android:keyHeight

Default height of a key, in pixels or percentage of display width

May be a dimension value, which is a floating point number appended with a unit such as "14.5sp". Available units are: px (pixels), dp (density-independent pixels), sp (scaled pixels based on preferred font size), in (inches), mm (millimeters).

May be a fractional value, which is a floating point number appended with either % or %p, such as "14.5%". The % suffix always means a percentage of the base size; the optional %p suffix provides a size relative to some parent container.

This may also be a reference to a resource (in the form "@[package:]type:name") or theme attribute (in the form "?[package:][type:]name") containing a value of this type.

This corresponds to the global attribute resource symbol keyHeight.

Related Methods

android:keyIcon

The icon to display on the key instead of the label

Must be a reference to another resource, in the form "@[+][package:]type:name" or to a theme attribute in the form "?[package:][type:]name".

This corresponds to the global attribute resource symbol keyIcon.

Related Methods

android:keyLabel

The label to display on the key

Must be a string value, using '\\;' to escape characters such as '\\n' or '\\uxxxx' for a unicode character.

This may also be a reference to a resource (in the form "@[package:]type:name") or theme attribute (in the form "?[package:][type:]name") containing a value of this type.

This corresponds to the global attribute resource symbol keyLabel.

Related Methods

android:keyOutputText

The string of characters to output when this key is pressed

Must be a string value, using '\\;' to escape characters such as '\\n' or '\\uxxxx' for a unicode character.

This may also be a reference to a resource (in the form "@[package:]type:name") or theme attribute (in the form "?[package:][type:]name") containing a value of this type.

This corresponds to the global attribute resource symbol keyOutputText.

Related Methods

android:keyWidth

Default width of a key, in pixels or percentage of display width

May be a dimension value, which is a floating point number appended with a unit such as "14.5sp". Available units are: px (pixels), dp (density-independent pixels), sp (scaled pixels based on preferred font size), in (inches), mm (millimeters).

May be a fractional value, which is a floating point number appended with either % or %p, such as "14.5%". The % suffix always means a percentage of the base size; the optional %p suffix provides a size relative to some parent container.

This may also be a reference to a resource (in the form "@[package:]type:name") or theme attribute (in the form "?[package:][type:]name") containing a value of this type.

This corresponds to the global attribute resource symbol keyWidth.

Related Methods

android:popupCharacters

The characters to display in the popup keyboard

Must be a string value, using '\\;' to escape characters such as '\\n' or '\\uxxxx' for a unicode character.

This may also be a reference to a resource (in the form "@[package:]type:name") or theme attribute (in the form "?[package:][type:]name") containing a value of this type.

This corresponds to the global attribute resource symbol popupCharacters.

Related Methods

android:popupKeyboard

The XML keyboard layout of any popup keyboard

Must be a reference to another resource, in the form "@[+][package:]type:name" or to a theme attribute in the form "?[package:][type:]name".

This corresponds to the global attribute resource symbol popupKeyboard.

Related Methods

Fields

public int[] codes

All the key codes (unicode or custom code) that this key could generate, zero'th being the most important.

public int edgeFlags

Flags that specify the anchoring to edges of the keyboard for detecting touch events that are just out of the boundary of the key. This is a bit mask of EDGE_LEFT, EDGE_RIGHT, EDGE_TOP and EDGE_BOTTOM.

public int gap

The horizontal gap before this key

public int height

Height of the key, not including the gap

public Drawable icon

Icon to display instead of a label. Icon takes precedence over a label

public Drawable iconPreview

Preview version of the icon, for the preview popup

public CharSequence label

Label to display

public boolean modifier

Whether this is a modifier key, such as Shift or Alt

public boolean on

If this is a sticky key, is it on?

public CharSequence popupCharacters

Popup characters

public int popupResId

If this key pops up a mini keyboard, this is the resource id for the XML layout for that keyboard.

public boolean pressed

The current pressed state of this key

public boolean repeatable

Whether this key repeats itself when held down

public boolean sticky

Whether this key is sticky, i.e., a toggle key

public CharSequence text

Text to output when pressed. This can be multiple characters, like ".com"

public int width

Width of the key, not including the gap

public int x

X coordinate of the key in the keyboard layout

public int y

Y coordinate of the key in the keyboard layout

Public Constructors

public Keyboard.Key (Keyboard.Row parent)

Create an empty key with no attributes.

public Keyboard.Key (Resources res, Keyboard.Row parent, int x, int y, XmlResourceParser parser)

Create a key with the given top-left coordinate and extract its attributes from the XML parser.

Parameters
res resources associated with the caller's context
parent the row that this key belongs to. The row must already be attached to a Keyboard.
x the x coordinate of the top-left
y the y coordinate of the top-left
parser the XML parser containing the attributes for this key

Public Methods

public int[] getCurrentDrawableState ()

Returns the drawable state for the key, based on the current state and type of the key.

Returns
  • the drawable state of the key.
See Also

public boolean isInside (int x, int y)

Detects if a point falls inside this key.

Parameters
x the x-coordinate of the point
y the y-coordinate of the point
Returns
  • whether or not the point falls inside the key. If the key is attached to an edge, it will assume that all points between the key and the edge are considered to be inside the key.

public void onPressed ()

Informs the key that it has been pressed, in case it needs to change its appearance or state.

public void onReleased (boolean inside)

Changes the pressed state of the key. If it is a sticky key, it will also change the toggled state of the key if the finger was release inside.

Parameters
inside whether the finger was released inside the key
See Also

public int squaredDistanceFrom (int x, int y)

Returns the square of the distance between the center of the key and the given point.

Parameters
x the x-coordinate of the point
y the y-coordinate of the point
Returns
  • the square of the distance of the point from the center of the key