Mohammed Asmar
Mohammed Asmar

Reputation: 328

android animation clickable

i have create simple animation for an image and i want this image when it is doing the animation if the user click on the image the toast start i made the image start doing the animation onCreate and i made the image onClick to do the toast but the problem is the image it is not clickable but if press on the original position of the image the toast is start (the onClick it is not moving with the animation)

thx for your help

this is the animation code in anim folder (translate.xml)

<?xml version="1.0" encoding="utf-8"?>
    <set xmlns:android="http://schemas.android.com/apk/res/android"
      android:interpolator="@android:anim/linear_interpolator" >
    <translate
        android:duration="1500"
        android:fromXDelta="-100%p"
        android:repeatCount="0"
        android:repeatMode="reverse"
        android:toXDelta="0" />

    </set>

and this is the Activity Class

package com.example.animatest;

import android.app.Activity;
import android.os.Bundle;
import android.util.Log;
import android.view.View;
import android.view.View.OnClickListener;
import android.view.animation.Animation;
import android.view.animation.AnimationUtils;
import android.widget.ImageView;
import android.widget.Toast;

public class MainActivity extends Activity {

private ImageView image01;

private long aefe;
private ImageView image1;
private ImageView image2;

@Override
protected void onCreate(Bundle savedInstanceState) {
    super.onCreate(savedInstanceState);
    setContentView(R.layout.activity_main);
    image01 = (ImageView) findViewById(R.id.imageView1);

    final Animation animTranslate1 = AnimationUtils.loadAnimation(this,
            R.anim.translate);

    image01.startAnimation(animTranslate1);

    image01.setOnClickListener(new OnClickListener() {

        @Override
        public void onClick(View view) {

            Toast.makeText(MainActivity.this, "hello", Toast.LENGTH_SHORT)
                    .show();

        }
    });

}

}

Upvotes: 0

Views: 1022

Answers (1)

Jon F Hancock
Jon F Hancock

Reputation: 3349

Add an animation listener to your animTranslate1 object.

set the onClickListener in the animation listener's onAnimationFinished() method.

animTranslate1.setAnimationListener(new AnimationListener(){
  @Override
  onAnimationEnd(Animation animation){
    image01.setOnClickListener(new OnClickListener() {

        @Override
        public void onClick(View view) {

            Toast.makeText(MainActivity.this, "hello", Toast.LENGTH_SHORT)
                    .show();

        }
    });
  }
});

Upvotes: 2

Related Questions