2017-04-04 8 views
0

私はimageViewを現在translateAnimationで画面の左から右に移動しています。私はそれが画面を横切って行くように、ユーザーがimageViewをクリックすると、これはImageViewをINVISIBLEに設定します。私の問題は、翻訳アニメーションを使用するため、これを行うことができないためです。私はこれをやるべきですか?一例を挙げることができます。Android:imageViewをアニメーションでクリックできるようにする

マイコード:

package com.example.mr_br.ibcc_bomber_command; 

import android.content.pm.ActivityInfo; 
import android.support.v7.app.AppCompatActivity; 
import android.os.Bundle; 
import android.view.View; 
import android.view.animation.TranslateAnimation; 
import android.widget.ImageView; 
import android.widget.RelativeLayout; 

public class front_gunner extends AppCompatActivity { 



@Override 
protected void onCreate(Bundle savedInstanceState) { 
    super.onCreate(savedInstanceState); 
    setContentView(R.layout.activity_front_gunner); 
    //sets screen orientation on created 
    this.setRequestedOrientation(ActivityInfo.SCREEN_ORIENTATION_LANDSCAPE); 

    //animation 
    final TranslateAnimation moveLefttoRight = new TranslateAnimation(-400, 2500, 0, 0); 
    moveLefttoRight.setDuration(10000); 
    moveLefttoRight.setFillAfter(false); 



    //enemies 
    final ImageView enemy1 = (ImageView) findViewById(R.id.enemy1); 

    enemy1.setAnimation(moveLefttoRight); 

    enemy1.setOnClickListener (new View.OnClickListener(){ 
     @Override 
     public void onClick(View v) { 
      enemy1.setVisibility(View.INVISIBLE); 
     } 
    }); 



} 
} 

ありがとうございました。私はに来た

+0

はOnClickListener内のアニメーションを停止してみてください。 –

+0

これはアニメーションの最初の秒で動作し、イメージビューがINVISIBLEになりますが、それ以降はクリップできません... –

+0

なぜ表示されないビューのクリックイベントを検出する必要があるのですか? – Darish

答えて

1

fluentアプローチは、はるかに楽しいです:

enemy1.animate() 
    .translationX(2500.0f) 
    .setDuration(10000) 
    .withStartAction(() -> enemy1.setTranslationX(-400.0f)); 
1

ソリューション:

ObjectAnimator anim = ObjectAnimator.ofFloat(enemy1, "translationX", -400f, 2500f); 
    anim.setDuration(10000);     // Duration in milliseconds 
    anim.start(); 

私はアニメーターの異なる種類を使用しました。これはうまくいった。他の誰かが同じ問題に遭遇した場合、これはまともな解決策です。

関連する問題