public class

Keyboard

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

Class Overview

Loads an XML description of a keyboard and stores the attributes of the keys. A keyboard consists of rows of keys.

The layout file for a keyboard contains XML that looks like the following snippet:

 <Keyboard
         android:keyWidth="%10p"
         android:keyHeight="50px"
         android:horizontalGap="2px"
         android:verticalGap="2px" >
     <Row android:keyWidth="32px" >
         <Key android:keyLabel="A" />
         ...
     </Row>
     ...
 </Keyboard>
 

Summary

Nested Classes
public class Keyboard.Key Class for describing the position and characteristics of a single key in the keyboard. 
public class Keyboard.Row Container for keys in the keyboard. 
XML Attributes
Attribute Name Related Method Description
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: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: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:verticalGap Default vertical gap between rows of keys

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

Constants
int EDGE_BOTTOM
int EDGE_LEFT
int EDGE_RIGHT
int EDGE_TOP
int KEYCODE_ALT
int KEYCODE_CANCEL
int KEYCODE_DELETE
int KEYCODE_DONE
int KEYCODE_MODE_CHANGE
int KEYCODE_SHIFT
Public Constructors
Keyboard(Context context, int xmlLayoutResId)
Creates a keyboard from the given xml key layout file.
Keyboard(Context context, int xmlLayoutResId, int modeId)
Creates a keyboard from the given xml key layout file.
Keyboard(Context context, int layoutTemplateResId, CharSequence characters, int columns, int horizontalPadding)

Creates a blank keyboard from the given resource file and populates it with the specified characters in left-to-right, top-to-bottom fashion, using the specified number of columns.

Public Methods
int getHeight()
Returns the total height of the keyboard
List<Keyboard.Key> getKeys()
int getMinWidth()
List<Keyboard.Key> getModifierKeys()
int[] getNearestKeys(int x, int y)
Returns the indices of the keys that are closest to the given point.
int getShiftKeyIndex()
boolean isShifted()
boolean setShifted(boolean shiftState)
Protected Methods
Keyboard.Key createKeyFromXml(Resources res, Keyboard.Row parent, int x, int y, XmlResourceParser parser)
Keyboard.Row createRowFromXml(Resources res, XmlResourceParser parser)
int getHorizontalGap()
int getKeyHeight()
int getKeyWidth()
int getVerticalGap()
void setHorizontalGap(int gap)
void setKeyHeight(int height)
void setKeyWidth(int width)
void setVerticalGap(int gap)
[Expand]
Inherited Methods
From class java.lang.Object

XML Attributes

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: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: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:verticalGap

Default vertical gap between rows of 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 verticalGap.

Related Methods

Constants

public static final int EDGE_BOTTOM

Constant Value: 8 (0x00000008)

public static final int EDGE_LEFT

Constant Value: 1 (0x00000001)

public static final int EDGE_RIGHT

Constant Value: 2 (0x00000002)

public static final int EDGE_TOP

Constant Value: 4 (0x00000004)

public static final int KEYCODE_ALT

Constant Value: -6 (0xfffffffa)

public static final int KEYCODE_CANCEL

Constant Value: -3 (0xfffffffd)

public static final int KEYCODE_DELETE

Constant Value: -5 (0xfffffffb)

public static final int KEYCODE_DONE

Constant Value: -4 (0xfffffffc)

public static final int KEYCODE_MODE_CHANGE

Constant Value: -2 (0xfffffffe)

public static final int KEYCODE_SHIFT

Constant Value: -1 (0xffffffff)

Public Constructors

public Keyboard (Context context, int xmlLayoutResId)

Creates a keyboard from the given xml key layout file.

Parameters
context the application or service context
xmlLayoutResId the resource file that contains the keyboard layout and keys.

public Keyboard (Context context, int xmlLayoutResId, int modeId)

Creates a keyboard from the given xml key layout file. Weeds out rows that have a keyboard mode defined but don't match the specified mode.

Parameters
context the application or service context
xmlLayoutResId the resource file that contains the keyboard layout and keys.
modeId keyboard mode identifier

public Keyboard (Context context, int layoutTemplateResId, CharSequence characters, int columns, int horizontalPadding)

Creates a blank keyboard from the given resource file and populates it with the specified characters in left-to-right, top-to-bottom fashion, using the specified number of columns.

If the specified number of columns is -1, then the keyboard will fit as many keys as possible in each row.

Parameters
context the application or service context
layoutTemplateResId the layout template file, containing no keys.
characters the list of characters to display on the keyboard. One key will be created for each character.
columns the number of columns of keys to display. If this number is greater than the number of keys that can fit in a row, it will be ignored. If this number is -1, the keyboard will fit as many keys as possible in each row.

Public Methods

public int getHeight ()

Returns the total height of the keyboard

Returns
  • the total height of the keyboard

public List<Keyboard.Key> getKeys ()

public int getMinWidth ()

public List<Keyboard.Key> getModifierKeys ()

public int[] getNearestKeys (int x, int y)

Returns the indices of the keys that are closest to the given point.

Parameters
x the x-coordinate of the point
y the y-coordinate of the point
Returns
  • the array of integer indices for the nearest keys to the given point. If the given point is out of range, then an array of size zero is returned.

public int getShiftKeyIndex ()

public boolean isShifted ()

public boolean setShifted (boolean shiftState)

Protected Methods

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

protected Keyboard.Row createRowFromXml (Resources res, XmlResourceParser parser)

protected int getHorizontalGap ()

protected int getKeyHeight ()

protected int getKeyWidth ()

protected int getVerticalGap ()

protected void setHorizontalGap (int gap)

protected void setKeyHeight (int height)

protected void setKeyWidth (int width)

protected void setVerticalGap (int gap)