我有一个按钮。单击按钮我为TextView设置动画。
在动画时,点击不适用于texview。
buttonclick.setOnClickListener(new View.OnClickListener() {
@Override
public void onClick(View v) {
final Animation animation = new TranslateAnimation(
Animation.RELATIVE_TO_SELF, 1.0f,
Animation.RELATIVE_TO_SELF, 10.0f,
Animation.RELATIVE_TO_SELF, 1.0f,
Animation.RELATIVE_TO_SELF, 10.0f);
animation.setDuration(100000);
textView.startAnimation(animation);
}
});
textView.setOnClickListener(new View.OnClickListener() {
@Override
public void onClick(View v) {
Toast.makeText(MainActivity.this,"Click",Toast.LENGTH_SHORT).show();
}
});
答案 0 :(得分:1)
Animation
只是动画视图,而不是更改,它是幻觉 ...您正在使用TranslateAnimation
,因此您正在移动你的观点"看",而不是观点本身。您可以使用setFillAfter(true)
方法,然后在动画结束后点击View
(但您的动画很长/无限......)。
考虑使用Animator
代替,这正在改变"参数" (在你的情况下是实际位置)每个动画框架的视图
ObjectAnimator animX = ObjectAnimator.ofFloat(textView, "x", newx);
ObjectAnimator animY = ObjectAnimator.ofFloat(textView, "y", newy);
AnimatorSet animSetXY = new AnimatorSet();
animSetXY.playTogether(animX, animY);
animSetXY.start();
答案 1 :(得分:0)
试试这个
PropertyValuesHolder x = PropertyValuesHolder.ofFloat("x", 50f);
PropertyValuesHolder y = PropertyValuesHolder.ofFloat("y", 100f);
ObjectAnimator.ofPropertyValuesHolder(mTextView, x, y).start();
通过这种方式,您可以为整个视图对象设置动画 - 而不仅仅是内容。