自定義鍵盤的布局及實現

2021-08-13 06:05:29 字數 2147 閱讀 2765

步驟:

1.在res下新建xml資料夾,在xml資料夾中新建.xml檔案,用來實現軟鍵盤的布局

2.標籤keyboard代表是軟鍵盤,標籤row代表的是一行,key代表的是乙個按鍵

3.每乙個按鍵都有乙個codes值,在類中就是通過codes的值來監聽每乙個按鈕。keylabel的值是鍵盤所要顯示的文字

注:keyborad:說明是乙個軟鍵盤定義檔案

row:說明是一行按鍵的定義

key:說明是乙個按鍵的定義

codes:代表按鍵對應的輸出值

keylabel:代表按鍵顯示的文字內容

keyicon:代表按鍵顯示的圖示內容,如果指定了該值則在顯示的時候顯示為不顯示文字

keywidth:代表按鍵的寬度,可以為精確值或者相對值,對於精確值支援多種單位,例如:畫素、英吋等。相對值為百分比,以%或%p結尾,其中%p表示相對于父容器。

keyheight:代表按鍵的高度,取值同上

horizontalgap:代表按鍵前的間隙(水平方向),取值同上

issticky:指定按鍵是否為sticky。如shift大小寫切換按鍵,具有兩種狀態,按下狀態和正常狀態,取值為true或者false

ismodifier:指定按鍵是否為功能鍵,如alt或者shift,取值為true或false

keyoutputtext:指按鍵輸出的文字內容,取值為字串

isrepeatable:指按鍵是否可是否是可重複的,如故長按該鍵可以觸發重複按鍵事件則為true,否則為false

keyedgeflags"指定按鍵的對齊指令,取值為left或right

載入布局

this.keyboardview = keyboardview1;

keyboardview.setonkeyboardactionlistener(listener);

this.myimeservice = myimeservice1;

keyboardview.setkeyboard(k1);

keyboardview.setenabled(true);

keyboardview.setpreviewenabled(true);

設定監聽,並處理事件

private onkeyboardactionlistener listener = new onkeyboardactionlistener() 

@override

public void swiperight()

@override

public void swipeleft()

@override

public void swipedown()

@override

public void ontext(charsequence text)

@override

public void onrelease(int primarycode)

@override

public void onpress(int primarycode)

@override

public void onkey(int primarycode, int keycodes) }};

一、字母鍵盤

<?xml version="1.0" encoding="utf-8"?>

執行後的結果:

二、數字鍵盤

<?xml version="1.0" encoding="utf-8"?>

執行後的結果:

三、中文鍵盤

<?xml version="1.0" encoding="utf-8"?>

執行後的結果:

自定義Toast實現自定義Toast布局

平時我們使用toast的時候都是這樣的一種方法 toast toast toast.maketext context,duration 現在我們來自定義下toast的布局,首先看下toast建立時的源 public static toast maketext context context,char...

UITableView實現自定義布局

在uitableview建立的 中,每一行中插入中已介紹了如何在 的每一行中新增和文字,下面將介紹一下怎麼新增乙個自定義檢視到每一行中,實現效果 實現主要 新增每一行的資訊 uitableviewcell tableview uitableview tableview cellforrowatind...

自定義布局

自定義view布局 1.確定每個view的位置和尺寸 2.作用 為繪製和觸控範圍做支援 1.對於繪製 知道自己需要在 繪製。2.對於觸控反饋 知道使用者的點是在 自定義view布局的工作內容 自定義view的工作分為兩個階段 測量階段和布局階段 測量流程 從上到下遞迴呼叫每個view或者viewgr...