簡體   English   中英

如何在android中檢測屏幕TILT?

[英]How to detect screen TILT in android?

我正在創建一個應用程序,我想檢測屏幕傾斜(當我們將手機向右轉一點時)並想要在這種情況下旋轉imageview(到90度)。 目前我正在使用此代碼,但它只是在oncreate中旋轉imageview(當應用程序開始運行時)。 我想檢測屏幕傾斜,並希望在這種情況下旋轉imageview。 如何實現? 任何幫助將不勝感激

Sensor accelator;
SensorManager sm;
@Override
protected void onCreate(Bundle savedInstanceState) {
    super.onCreate(savedInstanceState);
    setContentView(R.layout.activity_main);
    Toolbar toolbar = (Toolbar) findViewById(R.id.toolbar);
    setSupportActionBar(toolbar);
    imageView=(ImageView)findViewById(R.id.iv_demo_img);
    imageView.setBackgroundResource(R.drawable.demoimg);
    relativeLayout=(RelativeLayout)findViewById(R.id.content_main);
    //scaleGestureDetector=new ScaleGestureDetector(this,new ScaleListener());
    setlisteners();
    sm=(SensorManager)getSystemService(SENSOR_SERVICE);
    accelator=sm.getDefaultSensor(Sensor.TYPE_ACCELEROMETER);
    sm.registerListener(this,accelator,SensorManager.AXIS_MINUS_X);
}
@Override
public void onSensorChanged(SensorEvent event) {
    Toast.makeText(this, "On Sensor Changed Called", Toast.LENGTH_SHORT).show();
    imageView.setRotation(90);
}

@Override
public void onAccuracyChanged(Sensor sensor, int accuracy) {

}

使用OrientationEventListener

private OrientationEventListener createOrientationListener() {
    return new OrientationEventListener(this) {
        public void onOrientationChanged(int orientation) {
            System.out.println("orientation................."+orientation);
        }
    };
}

onCreate方法中啟動此偵聽器。

OrientationEventListener orientationListener = createOrientationListener();
orientationListener.enable();

如果您將手機朝右方向轉動,它將觸發1到90之間的值。向所有方向轉動將提供高達360的值。因此您可以根據您的要求使用此值。

使用后你可以禁用它。

orientationListener.disable();

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM