Most visited

Recently visited

Added in API level 3

KeyboardView

public class KeyboardView
extends View implements View.OnClickListener

java.lang.Object
   ↳ android.view.View
     ↳ android.inputmethodservice.KeyboardView


呈现虚拟Keyboard 它可以处理按键的呈现并检测按键和触摸动作。

Summary

Nested classes

interface KeyboardView.OnKeyboardActionListener

虚拟键盘事件的监听器。

XML attributes

android:keyBackground Image for the key. 
android:keyPreviewLayout Layout resource for key press feedback. 
android:keyPreviewOffset Vertical offset of the key press feedback from the key. 
android:keyTextColor Color to use for the label in a key. 
android:keyTextSize Size of the text for character keys. 
android:labelTextSize Size of the text for custom keys with some text and no icon. 
android:popupLayout Layout resource for popup keyboards. 
android:verticalCorrection Amount to offset the touch Y coordinate by, for bias correction. 

Inherited XML attributes

From class android.view.View

Inherited constants

From class android.view.View

Inherited fields

From class android.view.View

Public constructors

KeyboardView(Context context, AttributeSet attrs)
KeyboardView(Context context, AttributeSet attrs, int defStyleAttr)
KeyboardView(Context context, AttributeSet attrs, int defStyleAttr, int defStyleRes)

Public methods

void closing()
Keyboard getKeyboard()

返回此视图显示的当前键盘。

boolean handleBack()
void invalidateAllKeys()

请求重绘整个键盘。

void invalidateKey(int keyIndex)

使密钥失效,以便在下一次重新绘制时重新绘制密钥。

boolean isPreviewEnabled()

返回密钥反馈弹出窗口的启用状态。

boolean isProximityCorrectionEnabled()

如果启用了临近修正,则返回true。

boolean isShifted()

返回键盘的shift键的状态(如果有的话)。

void onDetachedFromWindow()

这是在视图从窗口分离时调用的。

void onDraw(Canvas canvas)

实施这个来做你的绘画。

boolean onHoverEvent(MotionEvent event)

实现此方法来处理悬停事件。

void onMeasure(int widthMeasureSpec, int heightMeasureSpec)

测量视图及其内容以确定测量宽度和测量高度。

void onSizeChanged(int w, int h, int oldw, int oldh)

当这个视图的大小发生变化时,这在布局期间被调用。

boolean onTouchEvent(MotionEvent me)

实现此方法来处理触摸屏幕动作事件。

void setKeyboard(Keyboard keyboard)

将键盘附加到此视图。

void setOnKeyboardActionListener(KeyboardView.OnKeyboardActionListener listener)
void setPopupOffset(int x, int y)
void setPopupParent(View v)
void setPreviewEnabled(boolean previewEnabled)

启用或禁用密钥反馈弹出窗口。

void setProximityCorrectionEnabled(boolean enabled)

启用时,对 onKey(int, int[])呼叫将包括相邻密钥的密钥代码。

boolean setShifted(boolean shifted)

设置键盘的shift键的状态(如果有的话)。

void setVerticalCorrection(int verticalOffset)

Protected methods

KeyboardView.OnKeyboardActionListener getOnKeyboardActionListener()

返回 KeyboardView.OnKeyboardActionListener对象。

void onAttachedToWindow()

这在视图附加到窗口时被调用。

boolean onLongPress(Keyboard.Key popupKey)

长按键时调用。

void swipeDown()
void swipeLeft()
void swipeRight()
void swipeUp()

Inherited methods

From class android.view.View
From class java.lang.Object
From interface android.graphics.drawable.Drawable.Callback
From interface android.view.KeyEvent.Callback
From interface android.view.accessibility.AccessibilityEventSource
From interface android.view.View.OnClickListener

XML attributes

android:keyBackground

图像的关键。 这个图像需要是一个StateListDrawable,具有以下可能的状态:正常,按下,可检查,可检查+按下,可检查+已检查,可检查+已检查+已按下。

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

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

android:keyPreviewLayout

用于按键反馈的布局资源。

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

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

android:keyPreviewOffset

键的按键反馈的垂直偏移。

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

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

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

android:keyTextColor

用于键中标签的颜色。

必须是“ #rgb ”,“ #argb ”,“ #rrggbb ”或“ #aarrggbb ”形式的颜色值。

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

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

android:keyTextSize

字符键的文本大小。

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

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

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

android:labelTextSize

具有一些文字和图标的自定义键的文本大小。

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

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

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

android:popupLayout

弹出式键盘的布局资源。

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

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

android:verticalCorrection

用于抵消触摸Y坐标的量,用于偏差校正。

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

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

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

Public constructors

KeyboardView

Added in API level 3
KeyboardView (Context context, 
                AttributeSet attrs)

Parameters
context Context
attrs AttributeSet

KeyboardView

Added in API level 3
KeyboardView (Context context, 
                AttributeSet attrs, 
                int defStyleAttr)

Parameters
context Context
attrs AttributeSet
defStyleAttr int

KeyboardView

Added in API level 21
KeyboardView (Context context, 
                AttributeSet attrs, 
                int defStyleAttr, 
                int defStyleRes)

Parameters
context Context
attrs AttributeSet
defStyleAttr int
defStyleRes int

Public methods

closing

Added in API level 3
void closing ()

getKeyboard

Added in API level 3
Keyboard getKeyboard ()

返回此视图显示的当前键盘。

Returns
Keyboard the currently attached keyboard

也可以看看:

handleBack

Added in API level 3
boolean handleBack ()

Returns
boolean

invalidateAllKeys

Added in API level 4
void invalidateAllKeys ()

请求重绘整个键盘。 调用invalidate()是不够的,因为键盘将键呈现到屏幕外的缓冲区,而invalidate()只绘制缓存的缓冲区。

也可以看看:

invalidateKey

Added in API level 4
void invalidateKey (int keyIndex)

使密钥失效,以便在下一次重新绘制时重新绘制密钥。 如果只有一个键正在更改其内容,请使用此方法。 任何影响密钥位置或大小的更改都可能无法履行。

Parameters
keyIndex int: the index of the key in the attached Keyboard.

也可以看看:

isPreviewEnabled

Added in API level 3
boolean isPreviewEnabled ()

返回密钥反馈弹出窗口的启用状态。

Returns
boolean whether or not the key feedback popup is enabled

也可以看看:

isProximityCorrectionEnabled

Added in API level 3
boolean isProximityCorrectionEnabled ()

如果启用了临近修正,则返回true。

Returns
boolean

isShifted

Added in API level 3
boolean isShifted ()

返回键盘的shift键的状态(如果有的话)。

Returns
boolean true if the shift is in a pressed state, false otherwise. If there is no shift key on the keyboard or there is no keyboard attached, it returns false.

也可以看看:

onDetachedFromWindow

Added in API level 3
void onDetachedFromWindow ()

这是在视图从窗口分离时调用的。 此时它不再有绘图表面。

onDraw

Added in API level 3
void onDraw (Canvas canvas)

实施这个来做你的绘画。

Parameters
canvas Canvas: the canvas on which the background will be drawn

onHoverEvent

Added in API level 14
boolean onHoverEvent (MotionEvent event)

实现此方法来处理悬停事件。

只要指针悬停在视图边界之上或之外,并且该视图当前未被触摸,就会调用此方法。 悬停事件被表示为具有动作指针事件ACTION_HOVER_ENTERACTION_HOVER_MOVE ,或ACTION_HOVER_EXIT

  • The view receives a hover event with action ACTION_HOVER_ENTER when the pointer enters the bounds of the view.
  • The view receives a hover event with action ACTION_HOVER_MOVE when the pointer has already entered the bounds of the view and has moved.
  • The view receives a hover event with action ACTION_HOVER_EXIT when the pointer has exited the bounds of the view or when the pointer is about to go down due to a button click, tap, or similar user action that causes the view to be touched.

该视图应实现此方法以返回true以指示它正在处理悬停事件,例如通过更改其可绘制状态。

如果视图已启用且可点击,则默认实现将调用setHovered(boolean)以在收到悬停输入或悬停退出事件时更新视图的悬停状态。 默认实现也发送悬停可访问性事件。

Parameters
event MotionEvent: The motion event that describes the hover.
Returns
boolean True if the view handled the hover event.

onMeasure

Added in API level 3
void onMeasure (int widthMeasureSpec, 
                int heightMeasureSpec)

测量视图及其内容以确定测量宽度和测量高度。 此方法由measure(int, int)调用, measure(int, int)子类覆盖,以提供其内容的准确和有效的度量。

合同:覆盖此方法时, 必须致电setMeasuredDimension(int, int)以存储此视图的测量宽度和高度。 如果不这样做,将触发IllegalStateException ,由measure(int, int)引发。 调用超类' onMeasure(int, int)是一种有效的用法。

Measure的基类实现默认为背景大小,除非MeasureSpec允许更大的大小。 子类应该覆盖onMeasure(int, int)以提供更好的内容度量。

如果此方法被覆盖,则子类的责任是确保测量的高度和宽度至少为视图的最小高度和宽度( getSuggestedMinimumHeight()getSuggestedMinimumWidth() )。

Parameters
widthMeasureSpec int: horizontal space requirements as imposed by the parent. The requirements are encoded with View.MeasureSpec.
heightMeasureSpec int: vertical space requirements as imposed by the parent. The requirements are encoded with View.MeasureSpec.

onSizeChanged

Added in API level 3
void onSizeChanged (int w, 
                int h, 
                int oldw, 
                int oldh)

当这个视图的大小发生变化时,这在布局期间被调用。 如果您刚刚添加到视图层次结构中,则会使用旧值0调用。

Parameters
w int: Current width of this view.
h int: Current height of this view.
oldw int: Old width of this view.
oldh int: Old height of this view.

onTouchEvent

Added in API level 3
boolean onTouchEvent (MotionEvent me)

实现此方法来处理触摸屏幕动作事件。

如果使用此方法检测点击操作,建议通过执行并调用performClick()来执行操作。 这将确保一致的系统行为,包括:

  • obeying click sound preferences
  • dispatching OnClickListener calls
  • handling ACTION_CLICK when accessibility features are enabled

Parameters
me MotionEvent: The motion event.
Returns
boolean True if the event was handled, false otherwise.

setKeyboard

Added in API level 3
void setKeyboard (Keyboard keyboard)

将键盘附加到此视图。 键盘可以在任何时候切换,视图将自行重新排列以适应键盘。

Parameters
keyboard Keyboard: the keyboard to display in this view

也可以看看:

setOnKeyboardActionListener

Added in API level 3
void setOnKeyboardActionListener (KeyboardView.OnKeyboardActionListener listener)

Parameters
listener KeyboardView.OnKeyboardActionListener

setPopupOffset

Added in API level 3
void setPopupOffset (int x, 
                int y)

Parameters
x int
y int

setPopupParent

Added in API level 3
void setPopupParent (View v)

Parameters
v View

setPreviewEnabled

Added in API level 3
void setPreviewEnabled (boolean previewEnabled)

启用或禁用密钥反馈弹出窗口。 这是一个弹出窗口,显示按下按键的放大版本。 默认情况下,预览已启用。

Parameters
previewEnabled boolean: whether or not to enable the key feedback popup

也可以看看:

setProximityCorrectionEnabled

Added in API level 3
void setProximityCorrectionEnabled (boolean enabled)

启用后,对onKey(int, int[])呼叫将包括相邻密钥的密钥代码。 禁用时,只会报告主键代码。

Parameters
enabled boolean: whether or not the proximity correction is enabled

setShifted

Added in API level 3
boolean setShifted (boolean shifted)

设置键盘的shift键的状态(如果有的话)。

Parameters
shifted boolean: whether or not to enable the state of the shift key
Returns
boolean true if the shift key state changed, false if there was no change

也可以看看:

setVerticalCorrection

Added in API level 3
void setVerticalCorrection (int verticalOffset)

Parameters
verticalOffset int

Protected methods

getOnKeyboardActionListener

Added in API level 3
KeyboardView.OnKeyboardActionListener getOnKeyboardActionListener ()

返回 KeyboardView.OnKeyboardActionListener对象。

Returns
KeyboardView.OnKeyboardActionListener the listener attached to this keyboard

onAttachedToWindow

Added in API level 3
void onAttachedToWindow ()

这在视图附加到窗口时被调用。 此时它有一个Surface并将开始绘制。 请注意,此功能保证在onDraw(android.graphics.Canvas)之前onDraw(android.graphics.Canvas) ,但可以在第一次onDraw之前的任何时间调用此函数,包括在onMeasure(int, int)之前或之后。

onLongPress

Added in API level 3
boolean onLongPress (Keyboard.Key popupKey)

长按键时调用。 默认情况下,这将通过popupLayout和popupCharacters属性打开与此键关联的任何弹出式键盘。

Parameters
popupKey Keyboard.Key: the key that was long pressed
Returns
boolean true if the long press is handled, false otherwise. Subclasses should call the method on the base class if the subclass doesn't wish to handle the call.

swipeDown

Added in API level 3
void swipeDown ()

swipeLeft

Added in API level 3
void swipeLeft ()

swipeRight

Added in API level 3
void swipeRight ()

swipeUp

Added in API level 3
void swipeUp ()

Hooray!