0

アクティビティで特定の画像を回転させたい。contentview を画像に設定したり、何かを描画したりする場所はすべて見つかりましたが、やはりフルスクリーンでした。

sensorChanged メソッド:

float[] mGravity2;
  float[] mGeomagnetic2;

  public void onSensorChanged(SensorEvent event) {
    if (event.sensor.getType() == Sensor.TYPE_ACCELEROMETER)
      mGravity2 = event.values;
    if (event.sensor.getType() == Sensor.TYPE_MAGNETIC_FIELD)
      mGeomagnetic2 = event.values;
    if (mGravity2 != null && mGeomagnetic2 != null) {
      float R[] = new float[9];
      float I[] = new float[9];
      boolean success = SensorManager.getRotationMatrix(R, I, mGravity2, mGeomagnetic2);
      if (success) {
        float orientation[] = new float[3];
        SensorManager.getOrientation(R, orientation);
        azimut = orientation[0]; 
      }
    }
    adjustArrow(azimut);
  }

調整矢印メソッド:

private void adjustArrow(float azz) {
    // TODO Auto-generated method stub
    ImageView myIB = (ImageView) findViewById(R.id.imageView1);
    Matrix matrix=new Matrix();
    myIB.setScaleType(ScaleType.MATRIX); 
    matrix.postRotate((float) azz, 200,200);
    myIB.setImageMatrix(matrix);
}

そしてonCreateメソッドで、ビールまたは0度を設定して、最初の写真を置きます:

ImageView myIB = (ImageView) findViewById(R.id.imageView1);

    Matrix matrix=new Matrix();
    myIB.setScaleType(ScaleType.MATRIX); 
    matrix.postRotate((float) degree(), 200,200);
    myIB.setImageMatrix(matrix);

しかし、それは機能していません。その理由はわかりません。sensorChanged メソッドからは方位角を取得する必要があり、「adjustArrow」メソッドでは画像を回転させる必要があります。前もって感謝します

4

0 に答える 0