2016-01-23 19 views
-2

我的問題只是十進制數字格式。我是初學者,我不知道如何解決問題。我想我應該使用十進制格式,但我不知道如何使用它。如何將我的標題文本設置爲整數?現在它顯示小數,我是一個初學者

這是我的Java代碼:

package apps.r.compass; 

    import android.app.Activity; 
    import android.content.pm.ActivityInfo; 
    import android.hardware.Sensor; 
    import android.hardware.SensorEvent; 
    import android.hardware.SensorEventListener; 
    import android.hardware.SensorManager; 
    import android.os.Bundle; 
    import android.view.animation.Animation; 
    import android.view.animation.RotateAnimation; 
    import android.widget.ImageView; 
    import android.widget.TextView; 

    public class MainActivity extends Activity implements SensorEventListener { 

// define the display assembly compass picture 
private ImageView image; 

// record the compass picture angle turned 
private float currentDegree = 0f; 

// device sensor manager 
private SensorManager mSensorManager; 
TextView tvHeading; 

@Override 
protected void onCreate(Bundle savedInstanceState) { 
    super.onCreate(savedInstanceState); 
    setContentView(R.layout.activity_main); 
    setRequestedOrientation(ActivityInfo.SCREEN_ORIENTATION_PORTRAIT); 

    // 
    image = (ImageView) findViewById(R.id.imageViewCompass); 

    // TextView that will tell the user what degree is he heading 
    tvHeading = (TextView) findViewById(R.id.tvHeading); 

    // initialize your android device sensor capabilities 
    mSensorManager = (SensorManager) getSystemService(SENSOR_SERVICE); 
} 

@Override 
protected void onResume() { 
    super.onResume(); 

    // for the system's orientation sensor registered listeners 
    mSensorManager.registerListener(this, mSensorManager.getDefaultSensor(Sensor.TYPE_ORIENTATION), 
      SensorManager.SENSOR_DELAY_GAME); 
} 

@Override 
protected void onPause() { 
    super.onPause(); 

    // to stop the listener and save battery 
    mSensorManager.unregisterListener(this); 
} 

@Override 
public void onSensorChanged(SensorEvent event) { 

    // get the angle around the z-axis rotated 
    float degree = event.values[0]; 
    tvHeading.setText(Float.toString(degree) + "°"); 

    // create a rotation animation (reverse turn degree degrees) 
    RotateAnimation ra = new RotateAnimation(
      currentDegree, -degree, 
      Animation.RELATIVE_TO_SELF, 0.5f, 
      Animation.RELATIVE_TO_SELF, 0.5f); 

    // how long the animation will take place 
    ra.setDuration(210); 

    // set the animation after the end of the reservation status 
    ra.setFillAfter(true); 

    // Start the animation 
    image.startAnimation(ra); 
    currentDegree = -degree; 
} 

@Override 
public void onAccuracyChanged(Sensor sensor, int accuracy) { 
    // not in use 
} 

}

回答

0

假設這是你提到的問題:

// get the angle around the z-axis rotated 
float degree = event.values[0]; 
tvHeading.setText(Float.toString(degree) + "°"); 

Round結果爲最接近的整數:

// get the angle around the z-axis rotated 
float degree = event.values[0]; 
tvHeading.setText(Math.round(degree) + "°"); 
+0

非常感謝! –

相關問題