鍵盤事件
打開android-sdk/docs/reference/index.html
在側邊欄找到android.app,點擊它
在右側Classes找到Activity,點擊
進入Activity類之後你會找到它有一個方法onKeyDown,這就是鍵盤(手機鍵盤)事件處理的方法。
創建工程TestKeyboardEvent,工程目錄如下
<LinearLayout xmlns:android="http://schemas.android.com/apk/res/android"
android:id="@+id/screen"
android:layout_width="fill_parent"
android:layout_height="fill_parent"
android:orientation="vertical" >
<TextView
android:id="@+id/alphValue"
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:layout_gravity="center" />
<ImageView
android:id = "@+id/image"
android:src="@drawable/ic_launcher"
android:layout_gravity="center"
android:layout_width="wrap_content"
android:layout_height="wrap_content" />
</LinearLayout>
package com.hb.yooge.testkeyboardevent;
import android.os.Bundle;
import android.app.Activity;
import android.util.Log;
import android.view.KeyEvent;
import android.view.Menu;
import android.widget.ImageView;
import android.widget.TextView;
public class TestKeyboardEvent extends Activity {
private static final String TAG = "TestKeyBoardEvent";
private ImageView mImage;
private TextView mAlphValueText;
private int mAlphValue;
private void findViewsById(){
mImage = (ImageView) findViewById(R.id.image);
mAlphValueText = (TextView) findViewById(R.id.alphValue);
}
@Override
public void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
setContentView(R.layout.activity_test_keyboard_event);
findViewsById();
mAlphValue = 100;
mImage.setAlpha(mAlphValue);
mAlphValueText.setText("Alpha = "+mAlphValue*100/0xff+"%");
}
@Override
public boolean onKeyDown(int keyCode, KeyEvent event) {
Log.v(TAG, "onKeyDown: keyCode = " + keyCode);
Log.v(TAG, "onKeyDown: string = " + event.toString());
switch(keyCode){
case KeyEvent.KEYCODE_DPAD_UP:
;
case KeyEvent.KEYCODE_DPAD_LEFT:
mAlphValue += 20;
break;
case KeyEvent.KEYCODE_DPAD_DOWN:
;
case KeyEvent.KEYCODE_DPAD_RIGHT:
mAlphValue -= 20;
break;
default:
System.out.println("============================================");
}
if(mAlphValue >= 0xff){
mAlphValue = 0xff;
}
if(mAlphValue <= 0){
mAlphValue = 0;
}
mImage.setAlpha(mAlphValue);
mAlphValueText.setText("Alpha = " + mAlphValue + "%");
return super.onKeyDown(keyCode, event);
}
@Override
public boolean onCreateOptionsMenu(Menu menu) {
getMenuInflater().inflate(R.menu.activity_test_keyboard_event, menu);
return true;
}
}
/* AUTO-GENERATED FILE. DO NOT MODIFY.
*
* This class was automatically generated by the
* aapt tool from the resource data it found. It
* should not be modified by hand.
*/
package com.hb.yooge.testkeyboardevent;
public final class R {
public static final class attr {
}
public static final class drawable {
public static final int ic_action_search=0x7f020000;
public static final int ic_launcher=0x7f020001;
}
public static final class id {
public static final int alphValue=0x7f070001;
public static final int image=0x7f070002;
public static final int menu_settings=0x7f070003;
public static final int screen=0x7f070000;
}
public static final class layout {
public static final int activity_test_keyboard_event=0x7f030000;
}
public static final class menu {
public static final int activity_test_keyboard_event=0x7f060000;
}
public static final class string {
public static final int app_name=0x7f040000;
public static final int hello_world=0x7f040001;
public static final int menu_settings=0x7f040002;
public static final int title_activity_test_keyboard_event=0x7f040003;
}
public static final class style {
public static final int AppTheme=0x7f050000;
}
}