2016-09-28 10 views
0

右から左のアニメーションでクリックボタンにレイアウトを隠したいと思っています。私は既にビューを表示しながら同じレイアウトにアニメーションを追加しました。今私はアニメーションでそのビューを非表示にしたい。右から左への翻訳でレイアウトを非表示にする方法

//on appearing view 
Animation anim = AnimationUtils.loadAnimation(this, R.anim.left_to_right); 
mylayout.startAnimation(anim1); 

左のアニメーションと同じレイアウトをリジッドで非表示にしたいと考えています。そして、私は可視性をGONEに設定したい。

+2

そして、あなたは何をしようとしたのにアニメーションを適用する/何が動作しませんか?いくつかのコードを共有してください。 – 0X0nosugar

+0

私はアニメートするコードを追加しましたが、mylayout.animate()が必要なので動作しません。 –

+0

あなたはレイアウトをアニメートするようになっているように思えたので、@Akshay Panchalが示唆しているように、逆にアニメーション化するだけです。 – 0X0nosugar

答えて

1

あなたはanimation resourceとあなたのstartActivity

活動

Intent intent = new Intent(this, ActivityB.class); 
startActivity(intent); 
overridePendingTransition(R.anim.right_left_in, R.anim.right_left_out); 
finish(); 

アニメーション解像度で使用して----> ../anim/right_left_in.xml

<?xml version="1.0" encoding="utf-8"?> 
    <translate 
      xmlns:android="http://schemas.android.com/apk/res/android" 
      android:duration="300" 
      android:fromXDelta="100%p" 
      android:toXDelta="0%p"> 
    </translate> 
を作ることができます

アニメーションres ----> ../anim/right _left_out.xml

<?xml version="1.0" encoding="utf-8"?> 
<translate 
     xmlns:android="http://schemas.android.com/apk/res/android" 
     android:duration="300" 
     android:fromXDelta="0%p" 
     android:toXDelta="100%p"> 
</translate> 

==========================

OTHERSアニメーション

../anim/move_left_in_activity.xml

<?xml version="1.0" encoding="utf-8"?> 
<translate 
     xmlns:android="http://schemas.android.com/apk/res/android" 
     android:duration="300" 
     android:fromXDelta="-100%p" 
     android:toXDelta="0%p"> 
</translate> 

../anim/move_left_out_activity.xml

<?xml version="1.0" encoding="utf-8"?> 
<translate 
     xmlns:android="http://schemas.android.com/apk/res/android" 
     android:duration="300" 
     android:fromXDelta="0%p" 
     android:toXDelta="-100%p"> 
</translate> 

../anim/slid_in.xml

<?xml version="1.0" encoding="utf-8"?> 
    <translate 
     xmlns:android="http://schemas.android.com/apk/res/android" 
     android:duration="@android:integer/config_longAnimTime" 
     android:fromXDelta="100%p" 
     android:toXDelta="0%p"> 
    </translate> 

../anim/slid_out.xml

<?xml version="1.0" encoding="utf-8"?> 
    <translate 
     xmlns:android="http://schemas.android.com/apk/res/android" 
     android:duration="@android:integer/config_longAnimTime" 
     android:fromXDelta="0%p" 
     android:toXDelta="-100%p"> 
    </translate> 

../anim/zoom_in。 xml

<?xml version="1.0" encoding="utf-8"?> 
<set xmlns:android="http://schemas.android.com/apk/res/android" android:fillAfter="true" > 
    <scale 
     xmlns:android="http://schemas.android.com/apk/res/android" 
     android:duration="1000" 
     android:fromXScale="1" 
     android:fromYScale="1" 
     android:pivotX="50%" 
     android:pivotY="50%" 
     android:toXScale="3" 
     android:toYScale="3" > 
    </scale> 
</set> 
2

あなたは以下のようなアニメーションリスナーを放置し、その後、あなたがやったのと同じアニメーションを適用し、追加するアニメーションを右に同じXMLを作ることができる、とだけ設定可視性が

anim .setAnimationListener(new Animation.AnimationListener() { 
     @Override 
     public void onAnimationStart(Animation animation) { 

     } 

     @Override 
     public void onAnimationEnd(Animation animation) { 

     } 

     @Override 
     public void onAnimationRepeat(Animation animation) { 

     } 
    }); 
0

が作成onAnimationEndであなたのビューに行って、「アニメーション」解像度フォルダの下にAndroidのリソースディレクトリenter image description here

はその後slide_left_outと呼ばれる新しいアニメーションファイルを作成します。XMLこのコード記述:

<?xml version="1.0" encoding="utf-8"?> 
<set 
    xmlns:android="http://schemas.android.com/apk/res/android" 
    android:ordering="together" 
    android:duration="350"> 
    <translate 
     android:fromXDelta="0" 
     android:toXDelta="-100%p" 
     android:fromYDelta="0" 
     android:toYDelta="50%p"/> 
    <scale 
     android:fromXScale="1" 
     android:toXScale="0.5" 
     android:fromYScale="1" 
     android:toYScale="0.5"/> 
    <alpha 
     android:fromAlpha="1" 
     android:toAlpha="0"/> 
</set> 

が次にビュー

Animation anim = AnimationUtils.loadAnimation(MainActivity.this, R.anim.slide_left_out); 
mylayout.startAnimation(anim); 
関連する問題