precio - blackberry torch 9810
Cómo atrapar el evento Pantalla giratoria de BlackBerry Torch 9800 OS 6? (2)
Cuando esto sucede, el marco de la interfaz de usuario de BB define el layout(int width, int height)
llamadas layout(int width, int height)
para su pantalla. Esto se debe a que MainScreen
también es un Manager
, por lo que debe diseñar todos sus campos secundarios antes de que BB UI framework comience a pintar.
Por lo tanto, en layout()
puede rastrear el estado de orientación actual (con net.rim.device.api.system.Display.getOrientation()
) y compararlo con el anterior. Si se cambia, entonces el dispositivo acaba de girar.
¿Podría alguien decirme cómo atrapar este evento? Porque cuando giré el teléfono al modo horizontal, la aplicación no se podía mostrar correctamente. Gracias, Duy
He encontrado un método diferente al sugerido por Arhimed y parece funcionar bien (lo uso para dibujar un campo personalizado de manera diferente, cuando el dispositivo está inclinado). Tengo un método
protected void myOrientation() {
// portrait is true when dh > dw
boolean portrait = (Display.getOrientation() == Display.ORIENTATION_PORTRAIT);
// dw and dh = real horizontal and vertical dimensions of display - regardless of device orientation
int dw = portrait ? Math.min(Display.getWidth(), Display.getHeight()) : Math.max(Display.getWidth(), Display.getHeight());
int dh = portrait ? Math.max(Display.getWidth(), Display.getHeight()) : Math.min(Display.getWidth(), Display.getHeight());
// here I draw my custom Field
invalidate();
}
y llamarlo una vez en el constructor y luego se llama en cada evento de acelerómetro:
public class MyScreen extends MainScreen implements AccelerometerListener {
private MyScreen() {
if (AccelerometerSensor.isSupported()) {
orientationChannel = AccelerometerSensor.openOrientationDataChannel( Application.getApplication() );
orientationChannel.addAccelerometerListener(this);
}
....
}
public void onData(AccelerometerData accData) {
if (old != accData.getOrientation()) {
myField.myOrientation();
}
}
Quizás esto te ayude y sí, tienes que comprobar, si el teclado se desliza en Torch
Saludos Alex