Я работаю над приложением, в котором мне нужно сделать прокрутку текста на основе информации о наклоне устройства. Я попробовал несколько решений, но ничего не работает. Я в состоянии получить наклоняя информацию, используя следующий код: -android - наклон для прокрутки текста?
public class SensorActivity extends Activity implements SensorEventListener {
float[] mMagnetValues = new float[3];
float[] mAccelValues = new float[3];
float[] mOrientationValues = new float[3];
float[] mRotationMatrix = new float[9];
@Override
public void onCreate(Bundle savedInstanceState)
{
super.onCreate(savedInstanceState);
setContentView(R.layout.main);
SensorManager sensorManager = (SensorManager) this.getSystemService(SENSOR_SERVICE);
sensorManager.registerListener(this, sensorManager.getDefaultSensor(Sensor.TYPE_ACCELEROMETER),
SensorManager.SENSOR_DELAY_NORMAL);
sensorManager.registerListener(this, sensorManager.getDefaultSensor(Sensor.TYPE_MAGNETIC_FIELD),
SensorManager.SENSOR_DELAY_NORMAL);
TextView txt1 = (TextView) findViewById(R.id.textView1);
}
@Override
public void onSensorChanged(SensorEvent event) {
switch (event.sensor.getType()) {
case Sensor.TYPE_ACCELEROMETER:
System.arraycopy(event.values, 0, mAccelValues, 0, 3);
break;
case Sensor.TYPE_MAGNETIC_FIELD:
System.arraycopy(event.values, 0, mMagnetValues, 0, 3);
break;
}
SensorManager.getRotationMatrix(mRotationMatrix, null, mAccelValues, mMagnetValues);
SensorManager.getOrientation(mRotationMatrix, mOrientationValues);
Log.e("Values", mOrientationValues[0] + " " + mOrientationValues[1] + " " + mOrientationValues);
};
@Override
public void onAccuracyChanged(Sensor sensor, int accuracy) { }
public void scrollTextUp() {
ScrollView scrollView = (ScrollView)findViewById(R.id.scroll);
scrollView.scrollBy(0, 5);
}
public void scrollTextBottom() {
ScrollView scrollView = (ScrollView)findViewById(R.id.scroll);
scrollView.scrollBy(0, -5);
}
}
Я предполагаю, что mOrientationValues[1]
необходимо использовать для прокрутки, но, как использовать это значение является большим вопросом для меня прямо сейчас. Пожалуйста помоги.
Любая помощь была бы действительно оценена. Если вы нашли хороший учебник или пример, поделитесь им.
Спасибо.
Возможно, scrollTo (int x, int y) вместо этого? – JRowan
Да, я думаю, что было бы лучше cuz scrollBy будет продолжать прокручивать текст. Но большой вопрос в том, как использовать значение датчика для вычисления нового y для scrollview? – Varundroid
Все значения варьируются от 1 до -1 вправо? Мой компьютер выгружен, его исправлено завтра – JRowan