2013-02-07 61 views
1

我爲圖片製作了一個簡單的動畫,並且我在圖片上設置了事件OnClick來做一個祝酒。問題是我使圖像開始在onCreate上進行動畫,並且我設置了要點擊的圖像並啓動了烘烤,但問題在於圖像不可點擊,但是如果我按下原始位置圖像,麪包開始(的OnClick不與動畫移動)圖片正在播放動畫,圖片可點擊

THX對您有所幫助

這是動畫文件夾中的動畫代碼(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> 

這是活動分類

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(); 

     } 
    }); 

} 

} 

回答

3

閱讀Android動畫系統文檔(docs link),特別是查看動畫和屬性動畫之間的區別。以下是查看動畫文檔的引用:

注意:無論動畫如何移動或調整大小,保存動畫的視圖邊界都不會自動調整以適應它。

本質上,當使用視圖動畫時,視圖本身永遠不會被翻譯,只有它被繪製的位置。該對象保留在其原始座標處,這就是爲什麼您必須點擊舊位置才能獲得事件。這是視圖動畫的一個已知限制,也是Property 3.0在Android 3.0+中引入的原因之一

+0

所以我該怎麼做 –

+0

要麼使用新的動畫系統,要麼使用任何一種方式移動實際視圖本身佈局參數更改或'View.offsetTopAndBottom()'和'View.offsetLeftAndRight()' – Devunwired