Most visited

Recently visited

Added in API level 3

Keyboard.Key

public static class Keyboard.Key
extends Object

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


用于描述键盘中单个按键的位置和特性的类。

Summary

XML attributes

android:codes The unicode value or comma-separated values that this key outputs. 
android:horizontalGap Default horizontal gap between keys. 
android:iconPreview The icon to show in the popup preview. 
android:isModifier Whether this is a modifier key such as Alt or Shift. 
android:isRepeatable Whether long-pressing on this key will make it repeat. 
android:isSticky Whether this is a toggle key. 
android:keyEdgeFlags Key edge flags. 
android:keyHeight Default height of a key, in pixels or percentage of display width. 
android:keyIcon The icon to display on the key instead of the label. 
android:keyLabel The label to display on the key. 
android:keyOutputText The string of characters to output when this key is pressed. 
android:keyWidth Default width of a key, in pixels or percentage of display width. 
android:popupCharacters The characters to display in the popup keyboard. 
android:popupKeyboard The XML keyboard layout of any popup keyboard. 

Fields

public int[] codes

所有关键代码(unicode或自定义代码),这个关键字可以产生,零是最重要的。

public int edgeFlags

指定锚定到键盘边缘的标志,用于检测刚刚超出键的边界的触摸事件。

public int gap

此键之前的横向间隙

public int height

关键的高度,不包括差距

public Drawable icon

要显示的图标而不是标签。

public Drawable iconPreview

预览版本的图标,用于预览弹出窗口

public CharSequence label

要显示的标签

public boolean modifier

这是否是修改键,如Shift或Alt

public boolean on

如果这是一个粘性键,它打开了吗?

public CharSequence popupCharacters

弹出式字符

public int popupResId

如果此键弹出迷你键盘,则这是该键盘的XML布局的资源ID。

public boolean pressed

此键的当前按下状态

public boolean repeatable

这个键是否在按下时重复

public boolean sticky

该键是否粘滞,即切换键

public CharSequence text

按下时输出的文本。

public int width

键的宽度,不包括间隙

public int x

键盘布局中键的X坐标

public int y

键盘布局中键的Y坐标

Public constructors

Keyboard.Key(Keyboard.Row parent)

创建一个没有属性的空键。

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

使用给定的左上角坐标创建一个键,并从XML解析器中提取其属性。

Public methods

int[] getCurrentDrawableState()

根据键的当前状态和类型返回键的可绘制状态。

boolean isInside(int x, int y)

检测一个点是否落在该键内。

void onPressed()

通知密钥它已被按下,以防需要改变其外观或状态。

void onReleased(boolean inside)

更改按键的按下状态。

int squaredDistanceFrom(int x, int y)

返回键中心和给定点之间距离的平方。

Inherited methods

From class java.lang.Object

XML attributes

android:codes

此密钥输出的unicode值或以逗号分隔的值。

可能是一个字符串值,使用'\\;' 转义字符如'\\ n'或'\\ uxxxx'作为unicode字符。

可能是一个整数值,如“ 100 ”。

这也可能是对包含此类型值的资源(格式为“ @[package:]type:name ”)或主题属性(格式为“ ?[package:][type:]name ”)的 ?[package:][type:]name

这对应于全局属性资源符号 codes

android:horizontalGap

键之间的默认水平间隙。

可能是尺寸值,这是一个浮点数,后面跟着一个单位,例如“ 14.5sp ”。 可用单位为:px(像素),dp(密度独立像素),sp(基于首选字体大小的缩放像素),单位为英寸,毫米(毫米)。

可能是一个小数值,它是一个浮点数, 14.5% %或%p,例如“ 14.5% ”。 %后缀始终表示基本大小的百分比; 可选的%p后缀提供了相对于某个父容器的大小。

这也可能是对包含此类型值的资源(形式为“ @[package:]type:name ”)或主题属性(形式为“ ?[package:][type:]name ”)的 ?[package:][type:]name

这对应于全局属性资源符号 horizontalGap

android:iconPreview

要在弹出预览中显示的图标。

必须是另一个资源的引用,其形式为“ @[+][package:]type:name ”,或者其形式为“一个主题属性 ?[package:][type:]name ”。

这对应于全局属性资源符号 iconPreview

android:isModifier

是否这是一个修饰键,如Alt或Shift。

必须是布尔值,可以是“ true ”或“ false ”。

这也可能是对包含此类型值的资源(形式为“ @[package:]type:name ”)或主题属性(形式为“ ?[package:][type:]name ”)的 ?[package:][type:]name

这对应于全局属性资源符号 isModifier

android:isRepeatable

长按这个键是否会重复。

必须是布尔值,可以是“ true ”或“ false ”。

这也可能是对包含此类型值的资源(形式为“ @[package:]type:name ”)或主题属性(形式为“ ?[package:][type:]name ”)的 ?[package:][type:]name

这对应于全局属性资源符号 isRepeatable

android:isSticky

这是否是一个切换键。

必须是布尔值,可以是“ true ”或“ false ”。

这也可能是对包含此类型值的资源(形式为“ @[package:]type:name ”)或主题属性(形式为“ ?[package:][type:]name ”)的 ?[package:][type:]name

这对应于全局属性资源符号 isSticky

android:keyEdgeFlags

关键边缘标志。

必须是以下常量值中的一个或多个(用'|'分隔)。

Constant Value 描述
left 1 Key is anchored to the left of the keyboard.
right 2 Key is anchored to the right of the keyboard.

这对应于全局属性资源符号 keyEdgeFlags

android:keyHeight

按键的默认高度,以像素或显示宽度的百分比表示。

可能是一个维度值,它是一个浮点数,后面跟着一个单位,例如“ 14.5sp ”。 可用单位为:px(像素),dp(密度独立像素),sp(基于首选字体大小的缩放像素),单位为英寸,毫米(毫米)。

可能是一个小数值,它是一个带有%或%p的浮点数,例如“ 14.5% ”。 %后缀始终表示基本大小的百分比; 可选的%p后缀提供了相对于某个父容器的大小。

这也可能是对包含此类型值的资源(格式为“ @[package:]type:name ”)或主题属性(格式为“ ?[package:][type:]name ”)的 ?[package:][type:]name

这对应于全局属性资源符号 keyHeight

android:keyIcon

该图标显示在键上而不是标签上。

必须是另一个资源的引用,其形式为“ @[+][package:]type:name ”,或者其形式为“一个主题属性 ?[package:][type:]name ”。

这对应于全局属性资源符号 keyIcon

android:keyLabel

要在键上显示的标签。

必须是字符串值,使用'\\;' 转义字符如'\\ n'或'\\ uxxxx'作为unicode字符。

这也可能是对包含此类型值的资源(形式为“ @[package:]type:name ”)或主题属性(形式为“ ?[package:][type:]name ”)的 ?[package:][type:]name

这对应于全局属性资源符号 keyLabel

android:keyOutputText

按下此键时要输出的字符串。

必须是字符串值,使用'\\;' 转义字符如'\\ n'或'\\ uxxxx'作为unicode字符。

这也可能是对包含此类型值的资源(格式为“ @[package:]type:name ”)或主题属性(格式为“ ?[package:][type:]name ”)的 ?[package:][type:]name

这对应于全局属性资源符号 keyOutputText

android:keyWidth

按键的默认宽度(以像素为单位)或显示宽度的百分比。

可能是尺寸值,这是一个浮点数,后面跟着一个单位,例如“ 14.5sp ”。 可用单位为:px(像素),dp(密度独立像素),sp(基于首选字体大小的缩放像素),单位为英寸,毫米(毫米)。

可能是一个小数值,它是一个浮点数, 14.5% %或%p,例如“ 14.5% ”。 %后缀始终表示基本大小的百分比; 可选的%p后缀提供了相对于某个父容器的大小。

这也可能是对包含此类型值的资源(形式为“ @[package:]type:name ”)或主题属性(形式为“ ?[package:][type:]name ”)的 ?[package:][type:]name

这对应于全局属性资源符号 keyWidth

android:popupCharacters

要在弹出式键盘中显示的字符。

必须是字符串值,使用'\\;' 转义字符如'\\ n'或'\\ uxxxx'作为unicode字符。

这也可能是对包含此类型值的资源(形式为“ @[package:]type:name ”)或主题属性(形式为“ ?[package:][type:]name ”)的 ?[package:][type:]name

这对应于全局属性资源符号 popupCharacters

android:popupKeyboard

任何弹出式键盘的XML键盘布局。

必须是另一个资源的引用,其形式为“ @[+][package:]type:name ”,或者其形式为“一个主题属性 ?[package:][type:]name ”。

这对应于全局属性资源符号 popupKeyboard

Fields

codes

Added in API level 3
int[] codes

所有关键代码(unicode或自定义代码),这个关键字可以产生,零是最重要的。

edgeFlags

Added in API level 3
int edgeFlags

指定锚定到键盘边缘的标志,用于检测刚刚超出键的边界的触摸事件。 这是一个位掩码EDGE_LEFTEDGE_RIGHTEDGE_TOPEDGE_BOTTOM

gap

Added in API level 3
int gap

此键之前的横向间隙

height

Added in API level 3
int height

关键的高度,不包括差距

icon

Added in API level 3
Drawable icon

要显示的图标而不是标签。 图标优先于标签

iconPreview

Added in API level 3
Drawable iconPreview

预览版本的图标,用于预览弹出窗口

label

Added in API level 3
CharSequence label

要显示的标签

modifier

Added in API level 3
boolean modifier

这是否是修改键,如Shift或Alt

on

Added in API level 3
boolean on

如果这是一个粘性键,它打开了吗?

popupCharacters

Added in API level 3
CharSequence popupCharacters

弹出式字符

popupResId

Added in API level 3
int popupResId

如果此键弹出迷你键盘,则这是该键盘的XML布局的资源ID。

pressed

Added in API level 3
boolean pressed

此键的当前按下状态

repeatable

Added in API level 3
boolean repeatable

这个键是否在按下时重复

sticky

Added in API level 3
boolean sticky

该键是否粘滞,即切换键

text

Added in API level 3
CharSequence text

按下时输出的文本。 这可以是多个字符,如“.com”

width

Added in API level 3
int width

键的宽度,不包括间隙

x

Added in API level 3
int x

键盘布局中键的X坐标

y

Added in API level 3
int y

键盘布局中键的Y坐标

Public constructors

Keyboard.Key

Added in API level 3
Keyboard.Key (Keyboard.Row parent)

创建一个没有属性的空键。

Parameters
parent Keyboard.Row

Keyboard.Key

Added in API level 3
Keyboard.Key (Resources res, 
                Keyboard.Row parent, 
                int x, 
                int y, 
                XmlResourceParser parser)

使用给定的左上角坐标创建一个键,并从XML解析器中提取其属性。

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

Public methods

getCurrentDrawableState

Added in API level 3
int[] getCurrentDrawableState ()

根据键的当前状态和类型返回键的可绘制状态。

Returns
int[] the drawable state of the key.

也可以看看:

isInside

Added in API level 3
boolean isInside (int x, 
                int y)

检测一个点是否落在该键内。

Parameters
x int: the x-coordinate of the point
y int: the y-coordinate of the point
Returns
boolean 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.

onPressed

Added in API level 3
void onPressed ()

通知密钥它已被按下,以防需要改变其外观或状态。

也可以看看:

onReleased

Added in API level 3
void onReleased (boolean inside)

更改按键的按下状态。

当满足以下所有条件时,切换键的状态将被翻转:

Parameters
inside boolean: whether the finger was released inside the key. Works only on Android M and later. See the method document for details.

也可以看看:

squaredDistanceFrom

Added in API level 3
int squaredDistanceFrom (int x, 
                int y)

返回键中心和给定点之间距离的平方。

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

Hooray!