我想在一个活动上旋转一个特定的图像。我找到了将内容视图设置为图像或绘制内容的所有内容,但是再次全屏显示。
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);
}
adjustArrow方法:
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方法来看,它必须采用azimut,而在“adjustArrow”方法中,它必须旋转图片。提前致谢