2016-10-18 9 views
1

私は、画面の傾きを検出したい(私たちの携帯電話を少し右に回すと)、この場合は90度までの画像ビューを回転させたいアプリケーションを作成しています。現在私はこのコードを使用していますが、oncreate(アプリ起動時)の画像ビューを回転させるだけです。私は画面の傾きを検出したいと思って、その場合は画像ビューを回転させたい。どのように達成することができますか?どんな助けもありがとうアンドロイドでTILT画面を検出する方法は?

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) { 

} 

答えて

0

OrientationEventListenerを使用してください。

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

このリスナーをonCreateメソッド内で開始するにはあなたは正しい方向に向けてお使いの携帯電話を有効にした場合

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

それはあなたがあなたの要件ごとにこの値を使用できるように360件まで値を与える1からすべての方向に90電源を入れに値をトリガします。

使用後は無効にすることができます。

orientationListener.disable(); 
+0

ありがとうございました: – User

+0

done ........ :-) – User

関連する問題