Nik*_*lin 13 android onkeydown android-view
我想创建一个照片/视频捕获应用程序.
我创建了一个CaptureView扩展SurfaceView并放在主窗体中的类.
主窗体的活动具有onCreateOptionsMenu()创建菜单的方法.菜单工作正常,但后来我尝试实现一个方法onKeyDown:
@Override
public boolean onKeyDown(int keyCode, KeyEvent event) {
if(event.getAction() == KeyEvent.ACTION_DOWN) {
switch(keyCode) {
case KeyEvent.KEYCODE_CAMERA:
videoPreview.TakePicture();
return true;
}
}
return super.onKeyDown(keyCode, event);
}
Run Code Online (Sandbox Code Playgroud)
该菜单不再出现,并且该方法不会捕获onKeyDown事件.
有谁知道这个问题可能是什么原因?
Cir*_*yon 14
我遇到了类似的问题并通过添加来解决它
this.requestFocus();
this.setFocusableInTouchMode(true);
Run Code Online (Sandbox Code Playgroud)
在我的SurfaceView子类的构造函数中.
小智 12
我发现我正在true为所有事件返回,我应该只为我正在使用的代码返回它.我在if声明的范围内移动了返回true ,false否则返回了我的菜单了!
@Override
public boolean onKeyDown(int keyCode, KeyEvent event) {
super.onKeyDown(keyCode, event);
if (keyCode == KeyEvent.KEYCODE_BACK) {
dba.close();
Intent result = new Intent("Complete");
setResult(Activity.RESULT_OK, result);
finish();
return true;
}
return false;
}
Run Code Online (Sandbox Code Playgroud)
我解决了删除if语句,如下所示:
@Override
public boolean onKeyDown(int keyCode, KeyEvent event) {
switch(keyCode)
{
case KeyEvent.KEYCODE_CAMERA:
videoPreview.TakePicture();
return true;
}
return super.onKeyDown(keyCode, event);
}
Run Code Online (Sandbox Code Playgroud)
| 归档时间: |
|
| 查看次数: |
52400 次 |
| 最近记录: |