Я пытаюсь прочитать несколько клавиш на устройстве, а также прочитать значения с сенсорного экрана.Сенсорный экран работает нормально, извлекает значения в _x и _y и отправляет их моему классу рендерера.Я думал, что это будет простая и похожая процедура для чтения ключей, но я явно ошибся (снова).Я не получаю никаких признаков того, что нажатие клавиши когда-либо обнаруживается.Может кто-нибудь помочь мне заставить это работать?И да, я только начал разбираться с Java, поэтому «ничто» не очевидно: -)
public class VortexTouchView extends GLSurfaceView {
private VortexRenderer _renderer;
private float _x1 = -1; private float _y1 = -1;
private float _x0 = -1; private float _y0 = -1;
public VortexTouchView(Context context) {
super(context);
// Create the renderer
_renderer = new VortexRenderer(this);
}
// THE TOUCH SCREEN WORKS.
//*************************
public boolean onTouchEvent(MotionEvent event){
int action = event.getAction();
int actionCode = action & MotionEvent.ACTION_MASK;
for (int i = 0; i < event.getPointerCount(); i++) {
if(event.getPointerId(i) == 0){ _x0 = event.getX(i); _y0 = event.getY(i); }
if(event.getPointerId(i) != 0){ _x1 = event.getX(i); _y1 = event.getY(i); }
}
if (actionCode == 1 || actionCode == 6 && action != 0){_x1 =-1f; _y1 =0f;}
if (actionCode == 1 || actionCode == 6 && action == 0){_x0 =-1f; _y0 =0f;}
_renderer.touchscreen (_x1,_y1,_x0,_y0);
return true; }
// BUT THE VOLUME KEY (or any other) DOESN'T APPEAR TO BE READ.
//*************************************************************
public boolean onKeyDown(int keyCode, KeyEvent event) {
if (event.getKeyCode() == KeyEvent.KEYCODE_VOLUME_DOWN) {
//do something
_x1=250f; _y1=250f; _x0=250f; _y0=250f;
_renderer.touchscreen (_x1,_y1,_x0,_y0);
// end of do something
return true;
}
return super.onKeyDown(keyCode, event);
}
// AND THIS DOESN'T WORK EITHER
//******************************
public boolean onKeyUp(int keyCode, KeyEvent event) {
if (event.getKeyCode() == KeyEvent.KEYCODE_VOLUME_DOWN) {
//do something
_x1=-1f; _y1=-1f; _x0=-1f; _y0=-1f;
_renderer.touchscreen (_x1,_y1,_x0,_y0);
// end of do something
return true;
}
return super.onKeyUp(keyCode, event);
}
Спасибо.