gpt4 book ai didi

android - 如何以低速旋转 ImageView

转载 作者:行者123 更新时间:2023-11-30 04:05:19 25 4
gpt4 key购买 nike

我已经构建了一个工作完美的指南针应用程序,但它只有一个问题,那就是动画,基本上我是在 SensorEventListener 中使用 matrix.setRotate onSensorChanged 方法旋转 ImageView(一个 nidle 图像)。 nidle 正在旋转,但速度非常快,看起来不太好。我想要的是以低速旋转图像。就像 iPhone 内置指南针一样。需要您的专家建议。

privateSensorEventListener mySensorEventListener= newSensorEventListener() {
.
.
.
public void onSensorChanged(SensorEvent event) {
.
.
.
azimuth= (int) event.values[0];
allowRotating=true;
dialer.post(new RotateRunnable(azimuth));
.
.
.
}};

传感器数据改变时调用的Runnable

private class RotateRunnable implementsRunnable {

private int Degrees;
public Rotate Runnable(intDegrees) {
this.Degrees= Degrees;
}

public void run() {
if(allowRotating) {
rotateDialer(Degrees);
dialer.post(this);
}
}

}

旋转图像的方法

private void rotateDialer(int Degrees) {

matrix.setRotate(360-Degrees, dialerWidth/ 2, dialerHeight/ 2);
dialer.setScaleType(ScaleType.MATRIX);
dialer.setImageMatrix(matrix);
allowRotating=false;
}

最佳答案

我相信,如果您对传感器的变化进行平均,它会使您的动画变得平滑。

azimuth = ((azimuth + (int)event.values[0]) / 2);

当然,您始终可以通过保留一组值并进行一些更有趣的算术运算来变得更复杂。

http://en.wikipedia.org/wiki/Average

关于android - 如何以低速旋转 ImageView,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/11777051/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com