アクティビティで特定の画像を回転させたい。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」メソッドでは画像を回転させる必要があります。前もって感謝します