我在

android中做一个应用程序.该应用程序在数据库中保存了一些引号,我想使用手机的传感器在屏幕上滑动引号.所以我希望当手机向左移动时,我可以在屏幕上看到下一个报价,当我将手机向右移动时,在屏幕上看到之前的报价.您认为哪种类型的传感器手机更好用?我正在尝试使用Type_orientation但我有错误:在API级别8中不推荐使用此常量.如何将其替换为SensorManager.getOrientation().

或者你认为还有其他传感器对我来说更好吗?

package com.example.prova1;

import java.util.HashMap;

import android.app.Activity;

import android.content.Context;

import android.content.Intent;

import android.database.Cursor;

import android.database.sqlite.SQLiteDatabase;

import android.hardware.Sensor;

import android.hardware.SensorEvent;

import android.hardware.SensorEventListener;

import android.hardware.SensorManager;

import android.os.Bundle;

import android.widget.TextView;

public class SlideQuote extends Activity implements SensorEventListener

{

//a TextView

private TextView quote;

private TextView author;

//the Sensor Manager

private SensorManager sManager;

float x;

int id;

int total;

String s1,s2;

Database quotedatabase = new Database(this);

/** Called when the activity is first created. */

@Override

public void onCreate(Bundle savedInstanceState)

{

super.onCreate(savedInstanceState);

setContentView(R.layout.slide_quote);

//get the TextView from the layout file

quote = (TextView) findViewById(R.id.textView3);

author = (TextView) findViewById(R.id.textView4);

id=1;

//get a hook to the sensor service

sManager= (SensorManager) getSystemService(Context.SENSOR_SERVICE);

if(sManager.getSensorList(Sensor.TYPE_ORIENTATION).size()!=0){

Sensor s =sManager.getSensorList(Sensor.TYPE_ORIENTATION).get(o);

sManager.registerListener(this,s ,SensorManager.SENSOR_DELAY_NORMAL);

s1= quotedatabase.getQuote(id);

s2= quotedatabase.getAuthor(id);

total=quotedatabase.getQuotesCount();

quote.setText(s1);

author.setText(s2);

}

}

//when this Activity starts

@Override

protected void onResume()

{

super.onResume();

/*register the sensor listener to listen to the gyroscope sensor, use the

callbacks defined in this class, and gather the sensor information as quick

as possible*/

sManager.registerListener(this, sManager.getDefaultSensor(Sensor.TYPE_ORIENTATION),SensorManager.SENSOR_DELAY_NORMAL);

}

//When this Activity isn't visible anymore

@Override

protected void onStop()

{

//unregister the sensor listener

sManager.unregisterListener(this);

super.onStop();

}

@Override

public void onAccuracyChanged(Sensor arg0, int arg1)

{

//Do nothing.

}

@Override

public void onSensorChanged(SensorEvent event)

{

//if sensor is unreliable, return void

if (event.accuracy == SensorManager.SENSOR_STATUS_UNRELIABLE)

{

return;

}

//else it will output the Roll, Pitch and Yawn values

x=event.values[2];

if(x>25){

if(id==total)

{id=1;

}

else{

id++;

}

s1= quotedatabase.getQuote(id);

s2= quotedatabase.getAuthor(id);

quote.setText(s1);

author.setText(s2);

}

if(x

if(id==1)

{id=total;}

else{

id--;}

s1= quotedatabase.getQuote(id);

s2= quotedatabase.getAuthor(id);

quote.setText(s1);

author.setText(s2);

}

}

@Override

public void onBackPressed() {

// TODO Auto-generated method stub

sManager.unregisterListener(this);

Intent backIntent = new Intent(getApplication(), Quote.class);

finish();

startActivity(backIntent);

}

}

Logo

为开发者提供学习成长、分享交流、生态实践、资源工具等服务,帮助开发者快速成长。

更多推荐