J'essaie d'écrire un programme Android en eclipse. L'idée du programme est d'afficher un message dans TextView
disant "Le périphérique a été retourné" si le périphérique est tourné exactement à 180 degrés (dans le plan xy, je pense?). J'utilise le capteur de rotation et j'essaie d'écrire mon code dans l'événement onSensorChanged
. Actuellement, ce code est supposé changer un TextView quand une rotation est détectée, mais ce n'est pas le cas.Comment modifier TextView lorsque je fais pivoter mon appareil?
Alors mes questions simples sont:
- Comment puis-je obtenir le textview changer étant donné toute rotation? Comment puis-je appliquer cela à une rotation de 180 degrés?
package com.example.rotation2;
import android.hardware.*;
import android.os.Bundle;
import android.app.Activity;
import android.content.Context;
import android.view.Menu;
import android.widget.TextView;
public class MainActivity extends Activity implements SensorEventListener {
TextView message;
private SensorManager mSensorManager;
private Sensor rotation;
Context context;
@Override
protected void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
setContentView(R.layout.activity_main);
TextView message = ((TextView) findViewById(R.id.message_view));
mSensorManager = (SensorManager) getSystemService(Context.SENSOR_SERVICE);
rotation = mSensorManager.getDefaultSensor(Sensor.TYPE_ROTATION_VECTOR);
if (rotation != null){
// Success! There's a rotation sensor.
message.setText(R.string.compatible);
}
else {
// Failure! No rotation sensor.
message.setText(R.string.incompatible);
}
}
@Override
public boolean onCreateOptionsMenu(Menu menu) {
// Inflate the menu; this adds items to the action bar if it is present.
getMenuInflater().inflate(R.menu.main, menu);
return true;
}
@Override
public void onAccuracyChanged(Sensor sensor, int accuracy) {}
@Override
public void onSensorChanged(SensorEvent event) {
message.setText(R.string.rotated);
}
}
Essayez ce lien, il peut être la réponse efficace pour vous, http://stackoverflow.com/questions/8997822/android- efficient-screen-rotation-handling –
Merci, mais je ne pense pas que ce soit vraiment mon problème. C'est utile cependant :) –
Vous voulez accomplir une rotation en utilisant des capteurs? – Mohit