恢弘志士之气,不宜妄自菲薄。这篇文章主要讲述Android 物理按键相关的知识,希望能为你提供帮助。
1 import android.app.Activity; 2 import android.os.Bundle; 3 import android.util.Log; 4 import android.view.KeyEvent; 5 import android.widget.Toast; 6 7 public class MainActivity extends Activity { 8 9 10@Override 11protected void onCreate(Bundle savedInstanceState) { 12super.onCreate(savedInstanceState); 13setContentView(R.layout.activity_main); 14} 15//我们在处理物理按键事件时,提供的回调方法有onKeyUp(),onKeyDown(),和onKeyLongPress(),比如音量键、返回键 16 17@Override 18public boolean onKeyDown(int keyCode, KeyEvent event) { 19if(keyCode == KeyEvent.KEYCODE_BACK){ 20Log.e("TAG", "这是监听键盘操作,按下了Back键"); 21} 22return super.onKeyDown(keyCode, event); 23} 24@Override 25public boolean onKeyUp(int keyCode, KeyEvent event) { 26if(keyCode == KeyEvent.KEYCODE_VOLUME_UP){ 27Log.e("TAG", "音量加键"); 28} 29return super.onKeyUp(keyCode, event); 30} 31 32//Activity中,我们可以重写onBackPressed()方法来处理返回键,如两次按键退出 33//第一次按下的时候,记录事件 34//第二次按下的事件减去第一次按下的时间小于2s就退出,否则将当前时间赋给第一次事件 35long startTime; 36 37@Override 38public void onBackPressed() { 39Log.e("TAG", "监听Back键"); 40 41if(System.currentTimeMillis()-startTime< 2000){ 42super.onBackPressed(); //释放资源,这个也可以直接finish(),但调用父类的释放的更彻底 43}else{ 44//记录当前时间 45startTime = System.currentTimeMillis(); 46Toast.makeText(this, "再按一次Back键退出", Toast.LENGTH_SHORT).show(); 47} 48} 49 50 }
一些常用物理按键
电源键KEYCODE_POWER
后退键KEYCODE_BACK
菜单键KEYCODE_MENU
HOME键KEYCODE_HOME
相机键KEYCODE_CAMERA
音量键KEYCODE_VOLUME_UP / KEYCODE_VOLUME_DOWM
搜索键KEYCODE_SEARCH
方向键KEYCODE_DPAD_CENTER
KEYCODE_DPAD_UP
KEYCODE_DPAD_DOWN
KEYCODE_DPAD_LEFT
KEYCODE_DPAD_RIGHT
键盘键KEYCODE_0...KEYCODE_9
【Android 物理按键】KEYCODE_A....KEYCODE_Z
推荐阅读
- android布局学习之相对布局(RelativeLayout)
- Android onTouch()和onTouchEvent()区别
- Android 通知栏Notification的整合 全面学习 (一个DEMO让你完全了解它)
- 原创菜鸟版Android 笔记2- Activity
- 分享Android软件(智慧旅行做法)
- Android 手机卫士--导航界面2
- Android使用Unity导致Activity被销毁的解决办法
- Android上使用OpenGLES2.0显示YUV数据
- Android实例-程序切换到后台及从后台切换到前台