onclick监听器不使用动画imageview

时间:2014-01-02 22:48:14

标签: java android animation onclick imageview

我在图片视图上有一个onclick监听器:

guy.setOnClickListener(new View.OnClickListener() {
                    public void onClick(View v) {

并且imageview具有以下动画:

<?xml version="1.0" encoding="utf-8"?>
<set xmlns:android="http://schemas.android.com/apk/res/android"
    android:shareInterpolator="false"
    android:fillAfter="true" >
<translate
    android:interpolator="@android:anim/decelerate_interpolator"
    android:duration="600"
    android:fillAfter="true"
    android:fromXDelta="10"
    android:fromYDelta="0"
    android:toXDelta="0%"
    android:toYDelta="-470" />
    <translate
        android:interpolator="@android:anim/decelerate_interpolator"
        android:startOffset="600"
        android:duration="300"
        android:fillAfter="true"
        android:fromXDelta="10"
        android:fromYDelta="0"
        android:toXDelta="0%"
        android:toYDelta="470" />

    </set>

绝对完美。然而onclick从未被触发,为什么会这样?

编辑: 布局:

<?xml version="1.0" encoding="utf-8"?>
<RelativeLayout xmlns:android="http://schemas.android.com/apk/res/android"
    android:layout_width="match_parent"
    android:layout_height="match_parent"
    android:orientation="vertical"
    android:background="@drawable/background">

    <ImageView
        android:id="@+id/guy"
        android:layout_width="200dp"
        android:layout_height="200dp"
        android:layout_centerHorizontal="true"
        android:layout_centerVertical="false"
        android:layout_marginTop="620dp"
        android:src="@drawable/guy" />

    <TextView
        android:id="@+id/score"
        android:layout_width="200dp"
        android:layout_height="200dp"
        android:layout_centerHorizontal="true"
        android:layout_centerVertical="false"
        android:layout_marginTop="20dp"
        android:text="Score = 0"
        android:textSize="34dp"
        android:textColor="@android:color/black"
 />

</RelativeLayout>

添加动画的地方:

anim = AnimationUtils.loadAnimation(this, R.anim.translate_one);

并播放:

 private void loop() {
        if (clicked) {
            clicked = false;


            Random r = new Random();
            long num = (long) (r.nextDouble() * 900L) + 500;
            guy.startAnimation(anim);
            guy.postDelayed(new Runnable() {
                @Override
                public void run() {
                    loop();
                }
            }, num);
        } else {
            loss();
        }
    }

盖伊宣称:

guy = (ImageView) findViewById(R.id.guy);

动画效果似乎非常好

0 个答案:

没有答案