android的按鍵處理
❶ 市面上有一款android的按鍵精靈,他是基於什麼原理實現的實現
它是基於Lua腳本語言來實現的。
觸動精靈是一款模擬手機觸摸、按鍵操作的軟體,通過製作腳本,可以讓觸動精靈代替雙手,自動執行一系列觸摸、按鍵操作。
觸動精靈簡單、易用,不需要掌握任何編程知識就可以錄制出功能強大的腳本;還可以使用編程知識,編寫出功能更為復雜,交互更為靈活的腳本;只要能夠在手機上完成的人為操作,觸動精靈都可以代替完成,不僅省力,而且高效。
(1)android的按鍵處理擴展閱讀:
1、軟體介紹
觸動精靈的腳本編寫基於Lua腳本語言,支持其所有標准函數庫。除了能夠模擬點擊、移動、單擊 Home 鍵之外,觸動精靈還提供一系列取色、找色、截圖、找圖等函數,更有豐富的網路插件、文件操作插件可供選擇,腳本作者可以選擇不公開源代碼發布自己的腳本。
2、軟體功能
(1)網路游戲中可作自動化腳本實現自動打怪,自動補血,自動說話等;
(2)辦公族可用它自動處理表格、文檔,自動收發郵件等;
(3)循環播放、定時運行能夠按計劃執行重復甚至繁雜的工作。
3、軟體特點
(1)安裝、操作簡單;
(2)支持 Lua 基本函數庫,提供模擬函數支持,第三方插件介面;
參考資料來源:網路-觸動精靈
❷ android中如何設置處理點擊按鈕事件
button.setOnClickListener(new
OnClickListener()
{
@Override
public
void
onClick(View
view)
{
button.setVisibility(View.GONE);//設置button隱藏不可見
}
});
if(bmp==null){
View.setVisible(View.GONE);
}else{
View.setVisible(View.VISIBLE);
}
希望能幫到你
如果還不會,你可以hi我
隨時在線的喲
親!
❸ QML怎麼處理android的back鍵
Back鍵是手機上的後退鍵,一般的軟體不捕獲相關信息可能導致你的程序被切換到後台,而回到桌面的尷尬情況,在Android上有兩種方法來獲取該按鈕的事件。
1.直接獲取按鈕按下事件,此方法兼容Android 1.0到Android 2.1 也是常規方法,直接重寫Activity的onKeyDown方法即可,代碼如下:
@Override
public boolean onKeyDown(int keyCode, KeyEvent event) {
if (keyCode == KeyEvent.KEYCODE_BACK && event.getRepeatCount() == 0) { //按下的如果是BACK,同時沒有重復
Toast.makeText(ml78.this,"魔力去吧Back鍵測試",1).show();
return true;
}
return super.onKeyDown(keyCode, event);
}
2、重寫onBackPressed方法
而對於Android 2.0開始又多出了一種新的方法,對於Activity 可以單獨獲取Back鍵的按下事件,直接重寫onBackPressed方法即可,代碼如下
@Override
public void onBackPressed() {
// 這里處理邏輯代碼,大家注意:該方法僅適用於2.0或更新版的sdk
return;
}
❹ 如何捕獲android系統按鍵事件
下面是android學習手冊中關於按鍵的介紹,例子,文檔、源碼都可以看,360手機助手中下載
在Android系統中,存在多種界面事件,如點擊事件、觸摸事件、焦點事件和菜單事件等,在這些界面事件發生時,Android界面框架調用界面控制項的事件處理方法對事件進行處理。
Android系統界面事件的傳遞和處理遵循以下規則。
·如果界面控制項設置了事件監聽器,則事件將先傳遞給事件監聽器。
·如果界面控制項沒有設置事件監聽器,界面事件則會直接傳遞給界面控制項的其他事件處理方法。
·即使界面控制項設置了事件監聽器,界面事件也可以再次傳遞給其他事件處理方法。
·是否繼續傳遞事件給其他處理方法是由事件監聽器處理方法的返回值決定的。
·如果監聽器處理方法的返回值為true,表示該事件已經完成處理過程,不需要其他處理方法參與處理過程,這樣事件就不會再繼續進行傳遞。
·如果監聽器處理方法的返回值為false,則表示該事件沒有完成處理過程,或需要其他處理方法捕獲到該事件,事件會被傳遞給其他的事件處理方法。
在MVC模型中,控制器根據界面事件(UI Event)類型不同,將事件傳遞給界面控制項不同的事件處理方法。
·按鍵事件(KeyEvent)將傳遞給onKey()方法進行處理。
·觸摸事件(TouchEvent)將傳遞給onTouch()方法進行處理。
下面以EditText控制項中的按鍵事件為例,說明Android系統界面事件傳遞和處理過程。
假設EditText控制項已經設置了按鍵事件監聽器,當用戶按下鍵盤上的某個按鍵時,控制器將產生KeyEvent按鍵事件。Android系統會首先判斷EditText控制項是否設置了按鍵事件監聽器,因為EditText控制項已經設置按鍵事件監聽器OnKeyListener,所以按鍵事件先傳遞到監聽器的事件處理方法onKey()中,事件能夠繼續傳遞給EditText控制項的其他事件處理方法,完全根據onKey()方法的返回值來確定:如果onKey()方法返回false,事件將繼續傳遞,這樣EditText控制項就可以捕獲到該事件,將按鍵的內容顯示在EditText控制項中;如果onKey()方法返回true,將阻止按鍵事件的繼續傳遞,這樣EditText控制項就不能夠捕獲到按鍵事件,也就不能夠將按鍵內容顯示在EditText控制項中。
Android界面框架支持對按鍵事件的監聽,並能夠將按鍵事件的詳細信息傳遞給處理方法。為了處理控制項的按鍵事件,先需要設置按鍵事件的監聽器,並重載onKey()方法,示例代碼如代碼清單1所示。
代碼清單1 設置按鍵事件的監聽器,並重載onKey()方法
entryText.setOnKeyListener(new OnKeyListener(){
@Override
public boolean onKey(View view, int keyCode, KeyEvent keyEvent) {
//過程代碼……
return true/false;
}
第1行代碼是設置控制項的按鍵事件監聽器。
第3行代碼的onKey ()方法中的參數:第1個參數View表示產生按鍵事件的界面控制項;第2個參數keyCode表示按鍵代碼;第3個參數KeyEvent則包含了事件的詳細信息,如按鍵的重復次數、硬體編碼和按鍵標志等。
第5行代碼是onKey()方法的返回值:返回true,阻止事件傳遞;返回false,允許繼續傳遞按鍵事件。
KeyEventDemo是一個說明如何處理按鍵事件的示例。
KeyEventDemo用戶界面如圖1所示。
圖1 KeyEventDemo用戶界面
從圖5-27中可以看出,最上方的EditText控制項是輸入字元的區域,中間的CheckBox控制項用來控制onKey()方法的返回值,最下方的TextView控制項用來顯示按鍵事件的詳細信息,包括按鍵動作、按鍵代碼、按鍵字元、UNICODE編碼、重復次數、功能鍵狀態、硬體編碼和按鍵標志。
界面的XML文件的代碼如代碼清單2所示
代碼清單2 界面XML文件
<EditText android:id="@+id/entry"
android:layout_width="match_parent"
android:layout_height="wrap_content">
</EditText>
<CheckBox android:id="@+id/block"
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:text="返回true,阻止將按鍵事件傳遞給界面元素" >
</CheckBox>
<TextView android:id="@+id/label"
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:text="按鍵事件信息" >
</TextView>
在EditText中,當任何一個鍵按下或抬起時,都會引發按鍵事件。為了能夠使EditText處理按鍵事件,需要使用setOnKeyListener ()方法在代碼中設置按鍵事件監聽器,並在onKey()方法中添加按鍵事件的處理過程,代碼如代碼清單3所示。
代碼清單3 setOnKeyListener()
entryText.setOnKeyListener(new OnKeyListener(){
@Override
public boolean onKey(View view, int keyCode, KeyEvent keyEvent) {
int metaState = keyEvent.getMetaState();
int unicodeChar = keyEvent.getUnicodeChar();
String msg = "";
msg +="按鍵動作:" + String.valueOf(keyEvent.getAction())+"
";
msg +="按鍵代碼:" + String.valueOf(keyCode)+"
";
msg +="按鍵字元:" + (char)unicodeChar+"
";
msg +="UNICODE:" + String.valueOf(unicodeChar)+"
";
msg +="重復次數:"+ String.valueOf(keyEvent.getRepeatCount())+"
";
msg +="功能鍵狀態:" + String.valueOf(metaState)+"
";
msg +="硬體編碼:" + String.valueOf(keyEvent.getScanCode())+"
";
msg +="按鍵標志:" + String.valueOf(keyEvent.getFlags())+"
";
labelView.setText(msg);
if (checkBox.isChecked())
return true;
else
return false;
}
在上述代碼中,第4行代碼用來獲取功能鍵狀態。功能鍵包括左Alt鍵、右Alt鍵和Shift鍵,當這3個功能鍵被按下時,功能鍵代碼metaState值分別為18、34和65;但沒有功能鍵被按下時,功能鍵代碼metaState值分別為0。
第5行代碼獲取了按鍵的Unicode值,而在第9行中,將Unicode轉換為了字元,顯示在TextView中。
第7行代碼獲取了按鍵動作,0表示按下按鍵,1表示抬起按鍵。第7行代碼獲取按鍵的重復次數,但當按鍵被長時間按下時,則會產生這個屬性值。
第13行代碼獲取了按鍵的硬體編碼,各硬體設備的按鍵硬體編碼都不相同,因此該值一般用於調試。
第14行獲取了按鍵事件的標志符。
❺ Android開發中如何處理按鍵響應
在layout中的activity_main.xml(你需要增加的響應插件所在的文件名)中你要處理的插件中設置id,然後在MainActivity中使用:
Button(這里用按鈕,你可能是其他的比如:ImgButton,ImgView) XXX(你自己定義的名字我用大寫的X表示)
在onCreate方法里寫:
XXX =this.findViewById(R.id.xxx(你給插件設置的id名,我用小寫的x表示));
XXX.setOnClickListener(new View.OnClickListener() {
public void onClick(View view) {
(這里寫按鍵響應的事件)
}
});
就可以了!!!!!
❻ Android系統重復按鍵的處理
按鈕點擊事件裡面有 setOnClickListener() 與 setOnLongClickListener(),分別對應著 點擊, 和長按 監聽,重寫這兩個方法 做對應的處理即可
❼ 請問安卓系統快捷鍵如何操作
在Android平台中設計了獨特的快捷鍵模式,您可以在某些界面,長時間按擊屏幕不放,會快將出現快捷鍵,類似在電腦上出現的右鍵菜單。比如在主界面空白處,長時間單擊屏幕不釋放。請您多多使用長按功能,會發現很多意想不到的功能。(上述內容僅適用於廣東聯通用戶)
❽ android中如何設置處理點擊按鈕事件
button.setOnClickListener(new OnClickListener() {
@Override
public void onClick(View view) {
button.setVisibility(View.GONE);//設置button隱藏不可見
}
});
if(bmp==null){
View.setVisible(View.GONE);
}else{
View.setVisible(View.VISIBLE);
}
希望能幫到你 如果還不會,你可以hi我 隨時在線的喲 親!
❾ android 是否有虛擬按鍵
虛擬按鍵(Virtual Key)是Eclair版本開始增加的新特性。Virtual Key的功能是利用觸摸屏,模擬按鍵發生的事件,這樣就可以利用觸摸屏的邊緣,實現一些可以自定義的按鍵效果。
在Android系統中,觸摸屏設備發送的是RawInputEvent(原始輸入事件),而按鍵發送的是KeyEvent(按鍵事件)。KeyEvent直接發送給應用程序層,RawInputEvent在Android的Java框架中被轉換成MotionEvent發送給應用程序層。
在Android系統中虛擬按鍵的實現方法是:在某種情況下,將RawInputEvent轉換成KeyEvent。
frameworks/base/services/Java/com/android/server目錄中的InputDevice.Java文件負責處理虛擬按鍵的主要文件。
虛擬按鍵的處理相對簡單,需要根據以下文件對虛擬按鍵的內容進行配置:
/sys/board_properties/virtualkeys.{devicename}
在InputDevice.Java文件中通過readVirtualKeys,對進行消息的轉化。根據配置文件將RawInputEvent轉換成按鍵相關的內容。
virtualkeys.{devicename}是虛擬按鍵的適配文件,需要在目標文件系統的/sys/board_ properties/目錄中。