我正在实施一个应用程序,我想在iPhone中摇动图标。
我该如何实现?
我在这里附上了动画的代码。请建议我任何解决方案。我已经尝试了已经在堆栈溢出中指定的soln,但它在我的情况下不起作用。此类是一个非活动类,其中编写了此动画集。
protected void animateDragged(){
View v = getChildAt(dragged);
int x = getCoorFromIndex(dragged).x + childSize / 2, y = getCoorFromIndex(dragged).y + childSize / 2;
int l = x - (3 * childSize / 4), t = y - (3 * childSize / 4);
v.layout(l, t, l + (childSize * 3 / 2), t + (childSize * 3 / 2));
AnimationSet animSet = new AnimationSet(true);
ScaleAnimation scale = new ScaleAnimation(.667f, 1, .667f, 1, childSize * 3 / 4, childSize * 3 / 4);
scale.setDuration(animT);
AlphaAnimation alpha = new AlphaAnimation(1, .5f);
alpha.setDuration(animT);
animSet.addAnimation(scale);
animSet.addAnimation(alpha);
animSet.setFillEnabled(true);
animSet.setFillAfter(true);
v.clearAnimation();
v.startAnimation(animSet);
}
由于
答案 0 :(得分:7)
您可以在shake.xml
文件夹中设置anim
。
<?xml version="1.0" encoding="utf-8"?>
<rotate xmlns:android="http://schemas.android.com/apk/res/android"
android:duration="100"
android:fromDegrees="-5"
android:pivotX="50%"
android:pivotY="50%"
android:repeatCount="infinite"
android:repeatMode="reverse"
android:toDegrees="5" />
现在在方法animateDragged()
中将其用作
Animation animation=AnimationUtils.loadAnimation(this,R.anim.shake);
v.startAnimation(animation);
答案 1 :(得分:0)
您也可以以编程方式为每个视图制作不同的随机动画。只需在每个图标
中使用循环下面的代码段即可 float px = ((float) Math.random() * .5f);
float py = ((float) Math.random() * .5f);
RotateAnimation anim = new RotateAnimation((float) Math.PI / 2 * -1.f, (float) Math.PI / 2,
RotateAnimation.RELATIVE_TO_SELF, .25f + px,
RotateAnimation.RELATIVE_TO_SELF, .25f + py);
anim.setDuration((long) (80. + (Math.random() * 50.)));
anim.setRepeatCount(RotateAnimation.INFINITE);
anim.setRepeatMode(RotateAnimation.REVERSE);
v.startAnimation(anim);