当前位置: 首页 > 知识库问答 >
问题:

视图的简单向上滑动动画

寇丰
2023-03-14

我有这样的看法:

<android.support.constraint.ConstraintLayout
    android:layout_width="match_parent"
    android:layout_height="0dp"
    app:layout_constraintEnd_toEndOf="parent"
    app:layout_constraintStart_toStartOf="parent"
    app:layout_constraintBottom_toBottomOf="parent"
    app:layout_constraintTop_toBottomOf="@+id/...">

    <ImageView
        android:id="@+id/.."
        android:layout_width="0dp"
        android:layout_height="0dp"
        android:background="@android:color/black"
        android:src="@drawable/.."
        app:layout_constraintEnd_toEndOf="parent"
        app:layout_constraintStart_toStartOf="parent"
        app:layout_constraintTop_toTopOf="parent"/>

</android.support.constraint.ConstraintLayout>

我想创建简单而清晰的动画,将alpha(淡入)更改为容器顶部,从最底部(容器)为ImageView滑动。

我在stackoverflow中找到了很多解决方案,当你指定幻灯片的具体高度时。有没有一个从下到上的简单解决方案?

共有3个答案

满才
2023-03-14

您必须放置四个动画文件,两个用于自下而上的动画,两个用于自上而下的动画:

对于从下到上的活动:

override fun onCreate(savedInstanceState: Bundle?) {
    overridePendingTransition(R.anim.slide_in_up, R.anim.slide_out_up)
    super.onCreate(savedInstanceState)
}

对于自上而下的活动:

  override fun onBackPressed() {
    overridePendingTransition(R.anim.slide_in_down, R.anim.slide_out_down)
    super.onBackPressed()
}

对于片段:

fun switchFragment1(fragment: Fragment, isAddBackStack: Boolean, tag: String) {
   val fragmentTransaction = supportFragmentManager.beginTransaction()
   fragmentTransaction.setCustomAnimations(R.anim.slide_in_up, R.anim.slide_out_up,
   R.anim.slide_in_down, R.anim.slide_out_down)

   if (isAddBackStack)
       fragmentTransaction.addToBackStack(null)
   fragmentTransaction.commitAllowingStateLoss()

}

滑入

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

滑出

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

滑入滑下

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

滑出

<?xml version="1.0" encoding="utf-8"?>
<translate xmlns:android="http://schemas.android.com/apk/res/android"
   android:duration="@android:integer/config_longAnimTime"
   android:fromYDelta="0%p"
   android:toYDelta="100%p" />
斜成济
2023-03-14

首先在res/anim中创建Xml文件/

从左到右动画:

<set xmlns:android="http://schemas.android.com/apk/res/android" android:shareInterpolator="false">
 <translate android:fromXDelta="-100%" android:toXDelta="0%"
            android:fromYDelta="0%" android:toYDelta="0%"
            android:duration="700"/>
</set>

在活动中添加以下代码

this.overridePendingTransition(R.anim.where_start_animation,
               R.anim.where_leave_animation);
巫晋鹏
2023-03-14

我们需要创建一个xml文件,该文件定义要在res目录下的新文件夹anim(res/anim/slide\up.xml)中执行的动画类型,并具有所需的属性。如果res目录中不存在anim文件夹,请创建一个新文件夹。

要在android应用程序中使用向上或向下滑动动画,需要使用

用于向上滑动动画

<?xml version="1.0" encoding="utf-8"?>
<set xmlns:android="http://schemas.android.com/apk/res/android">
<translate android:fromXDelta="0"
    android:fromYDelta="1000"
    android:duration="500"/>
</set>

对于向下滑动动画,

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

调整android: fromXDeltaandroid: fromYDeltaandroid: toYDeltaandroid:持续时间如您所愿。

如下所示定义xml

 <LinearLayout
        android:layout_width="match_parent"
        android:layout_height="match_parent"
        android:id="@+id/parentView>

    <ImageView
    android:id="@+id/.."
    android:layout_width="0dp"
    android:layout_height="0dp"
    android:background="@android:color/black"
    android:src="@drawable/.."
    app:layout_constraintEnd_toEndOf="parent"
    app:layout_constraintStart_toStartOf="parent"
    app:layout_constraintTop_toTopOf="parent"/>

    </LinearLayout>



LinearLayout parent= (LinearLayout)findViewById(R.id.parentView);
Animation aniSlide = 
AnimationUtils.loadAnimation(getApplicationContext(),R.anim.slide_up);
parent.startAnimation(aniSlide);

 类似资料:
  • 实现试衣间app首页中的上下滑动的特效,可以上拉视图查看下一张图片,也可以下拉将看过的图片再拉下来显示。视图变换时显示透明的效果。 [Code4App.com]

  • 问题内容: 触摸区域http://imageshack.us/a/img836/2909/swipe1.png 用户可以在绿色区域中向上,向右,向下,向左滑动。我现在如何获得例如向上滑动?或向下滑动?或向右滑动或向左滑动?例如如何获取一个字符串-> input = getSwiped(); ->输入然后是向上,或向右,向下,或向左 用户可以触摸两个按钮。1或2。1代表鸭子,2代表跳跃。 我想同时检

  • 我正在制作一个飞溅屏幕,我希望图像视图像悬浮一样不断上升然后下降。这将在数据库在后台加载时发生(AsyncTask)。我尝试过动画视图,但它只在一个方向上,而且只有一次。我如何完成这件事?提前谢谢你: D

  • 我试图将一个视图从右向左滑动,点击一个按钮,它的可见性就消失了,点击另一个按钮,它的可见性就消失了。我尝试了以下解决方案。但是它要求视图是可见的,并且它会将视图从一个位置滑动到另一个位置。我想要一个滑动效果,就像那样,但是要有。我怎样才能做到这一点?

  • 仍然像这样显示和隐藏视图: 但如果我必须使用向上滑动和向下滑动动画来显示和隐藏,该怎么办

  • 我看过一些样品,但没有一个适合我的需要。 我已经为动画创建了两个xml文件,但我不知道在更改的可见性时如何启动它们。