我有下面的代码,我想听音量下降按键,并做一些事情在相同的constraintLayout onClickListener:
override fun onCreate(savedInstanceState: Bundle?) {
super.onCreate(savedInstanceState)
setContentView(R.layout.activity_main)
supportActionBar?.hide();
textureView = findViewById(R.id.view_finder);
constraintLayout = findViewById<ConstraintLayout>(R.id.screen)
imgCap = findViewById<ImageView>(R.id.imgCapture)
if (allPermissionsGranted()) {
Log.i("PermissionsGranted", "Starting Camera...")
startCamera()
} else {
ActivityCompat.requestPermissions(this, REQUIRED_PERMISSIONS, REQUEST_CODE_PERMISSIONS);
}
}
private fun startCamera() {
constraintLayout.setOnClickListener { _: View? ->
// do something
}
// do the same thing as ClickListener above if volume down key is pressed
}
我试图通过重写onKeyDown来破解这个问题,但还没有找到解决方案。
试试这个:
@Override
public boolean dispatchKeyEvent(KeyEvent event) {
int keyCode = event.getKeyCode();
switch (keyCode) {
case KeyEvent.KEYCODE_VOLUME_UP:
//Volume up
return true;
case KeyEvent.KEYCODE_VOLUME_DOWN:
//Volume down
return true;
default:
return super.dispatchKeyEvent(event);
}
}
如果你想做同样的点击,你可以这样做:
constraintLayout.performClick();