Keyboard
  public
  
  
  
  class
  Keyboard
  
    extends Object
  
  
  
  
  
  
| java.lang.Object | |
| ↳ | android.inputmethodservice.Keyboard | 
      This class was deprecated
      in API level 29.
    This class is deprecated because this is just a convenient UI widget class that
             application developers can re-implement on top of existing public APIs.  If you have
             already depended on this class, consider copying the implementation from AOSP into
             your project or re-implementing a similar widget by yourselves
  
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 | |
|---|---|
        
        
        
        
        class | 
      
        Keyboard.Key
        Class for describing the position and characteristics of a single key in the keyboard.  | 
    
        
        
        
        
        class | 
      
        Keyboard.Row
        Container for keys in the keyboard.  | 
    
XML attributes | |
|---|---|
android:horizontalGap | 
        Default horizontal gap between keys. | 
android:keyHeight | 
        Default height of a key, in pixels or percentage of display width. | 
android:keyWidth | 
        Default width of a key, in pixels or percentage of display width. | 
android:verticalGap | 
        Default vertical gap between rows of keys. | 
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 xmlLayoutResId, int modeId, int width, int height)
      
      
        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)
      
      
     | 
  
Inherited methods | |
|---|---|
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), and
 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.
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), and
 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.
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), and
 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.
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), and
 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.
Constants
KEYCODE_ALT
public static final int KEYCODE_ALT
Constant Value: -6 (0xfffffffa)
KEYCODE_CANCEL
public static final int KEYCODE_CANCEL
Constant Value: -3 (0xfffffffd)
KEYCODE_DELETE
public static final int KEYCODE_DELETE
Constant Value: -5 (0xfffffffb)
KEYCODE_DONE
public static final int KEYCODE_DONE
Constant Value: -4 (0xfffffffc)
KEYCODE_MODE_CHANGE
public static final int KEYCODE_MODE_CHANGE
Constant Value: -2 (0xfffffffe)
KEYCODE_SHIFT
public static final int KEYCODE_SHIFT
Constant Value: -1 (0xffffffff)
Public constructors
Keyboard
public Keyboard (Context context, int xmlLayoutResId)
Creates a keyboard from the given xml key layout file.
| Parameters | |
|---|---|
context | 
        
          Context: the application or service context | 
      
xmlLayoutResId | 
        
          int: the resource file that contains the keyboard layout and keys. | 
      
Keyboard
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 | 
        
          Context: the application or service context | 
      
xmlLayoutResId | 
        
          int: the resource file that contains the keyboard layout and keys. | 
      
modeId | 
        
          int: keyboard mode identifier | 
      
Keyboard
public Keyboard (Context context, int xmlLayoutResId, int modeId, int width, int height)
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 | 
        
          Context: the application or service context | 
      
xmlLayoutResId | 
        
          int: the resource file that contains the keyboard layout and keys. | 
      
modeId | 
        
          int: keyboard mode identifier | 
      
width | 
        
          int: sets width of keyboard | 
      
height | 
        
          int: sets height of keyboard | 
      
Keyboard
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 | 
        
          Context: the application or service context | 
      
layoutTemplateResId | 
        
          int: the layout template file, containing no keys. | 
      
characters | 
        
          CharSequence: the list of characters to display on the keyboard. One key will be created
 for each character. | 
      
columns | 
        
          int: 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. | 
      
horizontalPadding | 
        
          int  | 
      
Public methods
getHeight
public int getHeight ()
Returns the total height of the keyboard
| Returns | |
|---|---|
int | 
        the total height of the keyboard | 
getModifierKeys
public List<Keyboard.Key> getModifierKeys ()
| Returns | |
|---|---|
List<Keyboard.Key> | 
        |
getNearestKeys
public int[] getNearestKeys (int x, 
                int y)Returns the indices of the keys that are closest to the given point.
| Parameters | |
|---|---|
x | 
        
          int: the x-coordinate of the point | 
      
y | 
        
          int: the y-coordinate of the point | 
      
| Returns | |
|---|---|
int[] | 
        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. | 
setShifted
public boolean setShifted (boolean shiftState)
| Parameters | |
|---|---|
shiftState | 
        
          boolean  | 
      
| Returns | |
|---|---|
boolean | 
        |
Protected methods
createKeyFromXml
protected Keyboard.Key createKeyFromXml (Resources res, Keyboard.Row parent, int x, int y, XmlResourceParser parser)
| Parameters | |
|---|---|
res | 
        
          Resources  | 
      
parent | 
        
          Keyboard.Row  | 
      
x | 
        
          int  | 
      
y | 
        
          int  | 
      
parser | 
        
          XmlResourceParser  | 
      
| Returns | |
|---|---|
Keyboard.Key | 
        |
createRowFromXml
protected Keyboard.Row createRowFromXml (Resources res, XmlResourceParser parser)
| Parameters | |
|---|---|
res | 
        
          Resources  | 
      
parser | 
        
          XmlResourceParser  | 
      
| Returns | |
|---|---|
Keyboard.Row | 
        |
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 2025-02-10 UTC.