我可以使用下面的XML文件
<set xmlns:android="http://schemas.android.com/apk/res/android"
android:interpolator="@android:anim/decelerate_interpolator">
<translate android:fromXDelta="100%" android:toXDelta="0%" android:duration="500" />
</set>
并从代码中加载此xml AnimationUtils.loadAnimation(mContext,com ..... R.anim.slidein)
一切正常
但是现在由于某种原因,我需要在不使用XML的情况下做同样的事情 如何使用代码创建相同的动画 我试过这样的事情
TranslateAnimation in = new TranslateAnimation(1.0f,0.0f,0.0f,0.0f); in.setInterpolator(AnimationUtils.loadInterpolator(mContext, android.R.anim.accelerate_interpolator)); in.setDuration(500);
但没有工作,没有任何动画
我认为问题在于百分比,在xml中我指定了百分比,但是在TranslateAnimation构造函数中我如何指定百分比
答案 0 :(得分:5)
你是对的。您使用的构造函数创建具有绝对值(像素)的动画。您需要使用another constructor。像这样举例如:
TranslateAnimation in = new TranslateAnimation(
Animation.RELATIVE_TO_SELF, 1.0f,
Animation.RELATIVE_TO_SELF, 0.0f, 0, 0.0f, 0, 0.0f);
尝试第一个和第三个参数。尝试使用Animation.RELATIVE_TO_PARENT来满足您的需求。
答案 1 :(得分:0)
试试这个(使用百分比'p'):
<translate android:fromXDelta="100%p" android:toXDelta="0%p" android:duration="500" />