我发现我的动画在按钮点击时第二次不适用。我使用过this库。我希望用动画旋转图像。但问题是它只能工作一次。
这是我点击按钮上的代码
btn.setOnClickListener(new View.OnClickListener() {
@Override
public void onClick(View v) {
ViewAnimator.animate(imageView)
.rotation(rotationAngle).duration(1000)
.repeatMode(ValueAnimator.RESTART)
.start();
if(rotationAngle==360)
{
rotationAngle=180;
}
else
{
rotationAngle += 180;
}
}
});
答案 0 :(得分:1)
使用下面正常工作的代码,我也测试了
public class MainActivity extends AppCompatActivity {
private int rotationAngle = 180;
@Override
protected void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
setContentView(R.layout.activity_main);
final TextView tv = (TextView) findViewById(R.id.tv_testing);
findViewById(R.id.btn_click).setOnClickListener(new View.OnClickListener() {
@Override
public void onClick(View v) {
ViewAnimator.animate(tv)
.rotation(rotationAngle).duration(1000)
.repeatMode(ValueAnimator.RESTART)
.start();
if(rotationAngle==360)
{
rotationAngle=180;
}
else
{
rotationAngle += 180;
}
}
});
}
}
希望对你有所帮助
答案 1 :(得分:0)
我测试了这段代码,看起来它运行正常。如果您想要始终顺时针旋转图像,请尝试下一步: Init的默认值为rotationAngle
private float rotationAngle=179.99f;
.99f - 因为360度是0度,你需要更少的旋转方向
然后设置onClickListener:
btn.setOnClickListener(new View.OnClickListener() {
@Override
public void onClick(View v) {
ViewAnimator.animate(imageView)
.rotation(rotationAngle).duration(1000)
.repeatMode(ValueAnimator.RESTART)
.start();
if(rotationAngle>=360)
{
rotationAngle=179.99f;
}
else
{
rotationAngle += 180;
}
}
});
答案 2 :(得分:0)
因为使用
WORKDIR /src/CoreWebApp
RUN dotnet build CoreWebApp.csproj -c Release -o /app
Run dotnet ef database update
您应该使用
ViewAnimator.animate(imageView)
.rotation(rotationAngle).duration(1000)
它只能运行一次的原因是,如果您使用旋转,则它将旋转到旋转的程度(对于您的情况为180),因为创建了活动而不是当前位置。