我创建了一个二十一点应用程序并且我已经使一切运行良好但我想使应用程序更加真实,以便卡片将以某种速度显示,类似于真正的经销商卡片分发。 任何想法我怎么能实现它?
答案 0 :(得分:0)
查看动画,但如果你正在寻找在桌子上投掷的那张牌,那么创建两个randoms一个用于位置,一个用于旋转说位置+ -20和旋转+ -30并让你的卡随机偏离硬盘编码的位置应该在哪里。这将使它看起来更逼真。
答案 1 :(得分:0)
如果您只需要将卡片移动,就像经销商抛出一样,我建议您使用ValueAnimator
。然后,您可以设置翻译值的动画,并在onDraw
方法中使用该值。您还可以使用DecelerateInterpolator
来模拟桌面上的摩擦力。
final ValueAnimator va = ValueAnimator.ofInt(initialPosition, destination);
va.setInterpolator(new DecelerateInterpolator());
va.setDuration(duration);
va.addUpdateListener(new ValueAnimator.AnimatorUpdateListener() {
@Override
public void onAnimationUpdate(ValueAnimator anim) {
int value = (int) anim.getAnimatedValue();
setCardTranslation(value);
// so onDraw is called
invalidate();
}
});
va.start();
答案 2 :(得分:0)
动画可以为你做一个技巧。按照这些步骤进行简单的动画
在该xml文件中添加以下代码
<?xml version="1.0" encoding="utf-8"?>
<set xmlns:android="http://schemas.android.com/apk/res/android" >
<translate
android:duration="@android:integer/config_longAnimTime"
android:toXDelta="0"
android:fromXDelta="-100%p" />
</set>
在你的班级中,在必要的空间内编写这段代码。
Animation animationFadeIn;
animationFadeIn = AnimationUtils.loadAnimation(this, R.anim.right_out);
imageView1.startAnimation(animationFadeIn);
就是这样。你可以在这个应用程序中找到建议的动画
https://play.google.com/store/apps/details?id=tenmb.asl.americansignlanguage