如何使用从右到左的翻译隐藏布局

时间:2016-09-28 07:13:43

标签: android android-layout animation android-transitions

我想在点击按钮上隐藏一个从右到左动画的布局。在显示视图时,我已经将动画添加到相同的布局中。现在我想用动画隐藏那个视图。

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

现在我想隐藏与左边动画相同的布局。然后我想设置可见度GONE。

3 个答案:

答案 0 :(得分:2)

您可以在animation resource

上制作startActivity并使用

<强>活动

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

动画片段&gt; ../动画/ 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>

动画片段&gt; ../动画/ 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>

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

其他动画

<强> ../动画/ 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>

<强> ../动画/ 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>

<强> ../动画/ 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>

<强> ../动画/ 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>

<强> ../动画/ 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>

答案 1 :(得分:2)

您可以从右到左为动画创建相同的XML,然后像您一样应用动画,并添加如下所示的动画侦听器,并在onAnimationEnd中将Visibility设置为您的视图

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

        }

        @Override
        public void onAnimationEnd(Animation animation) {

        }

        @Override
        public void onAnimationRepeat(Animation animation) {

        }
    });

答案 2 :(得分:0)

创建&#34;动画&#34; res文件夹下的 Android资源目录enter image description here

然后创建名为 slide_left_out.xml 的新动画文件并编写此代码:

Animation anim = AnimationUtils.loadAnimation(MainActivity.this, R.anim.slide_left_out);
mylayout.startAnimation(anim);

然后将动画应用于视图

var filesCount = "give here number of files";

var callbackFunction = function(){
    if(data.length == filesCount ){
        Console.log( "Assume this as the end of all files reading" );
    }
}
entry.file(function (file) {

    var reader = new FileReader();
    reader.onloadend = function (e) {
        data.push(this.result);
        callbackFunction();
    };

    reader.readAsText(file);
});