Вращающаяся стрелка спидометра вокруг его центра при изменении скорости
Всем привет,
Я написал приложение, в котором у меня есть спидометр с иглой, вертикально установленной на 90 градусов, и я пытаюсь вращать иглу вокруг ее центра со скоростью, которая меняется каждую секунду (я отображаю скорость в текстовом представлении, которое меняется случайным образом от 0 до 120)
Я получаю скорость от удаленного сервиса и отображается в текстовом виде.
так как скорость меняется, стрелочный указатель спидометра должен меняться соответственно вокруг его центра. Я имею в виду, если скорость равна 30, стрелка должна быть на 30 и так далее на спидометре.
Мой код не работает точно, как обойти эту проблему?
Помощь всегда ценится, спасибо.
Вот мой код:
pointer1 = (ImageView) findViewById(R.id.pointer1);
double degrees= speed;
double angle = degrees * 2 * Math.PI / 360.0;
for( speed=0;speed<120;speed++){
RotateAnimation rAnimAntiClockWise = new RotateAnimation(180-0.0f, 180-speed,
Animation.RELATIVE_TO_SELF, 0.5f, Animation.RELATIVE_TO_SELF, 0.5f);
rAnimAntiClockWise.setInterpolator(new LinearInterpolator());
rAnimAntiClockWise.setDuration(100);
rAnimAntiClockWise.setFillAfter(true);
rAnimAntiClockWise.setDuration(10000);
rAnimAntiClockWise.setRepeatCount(-1);
rAnimAntiClockWise.setRepeatMode(2);
pointer1.startAnimation(rAnimAntiClockWise);
}
private void invokeService() {
if (conn == null) {
} else {
try {
System.out.println(remoteService);
int speed = remoteService.getSpeed();
System.out.println("myspeed" + speed);
TextView r = (TextView) findViewById(R.id.text2);
r.setText("" + Integer.toString(speed));
Log.d(getClass().getSimpleName(), "invokeService()");
} catch (RemoteException re) {
Log.e(getClass().getSimpleName(), "RemoteException");
}
}
}