【问题标题】:Transition with Drawer Layout带抽屉布局的过渡
【发布时间】:2017-01-27 17:24:02
【问题描述】:

我正在构建一个应用程序,它需要和图像根据DrawerLayout 的移动滑入和滑出。比如,当我们open 抽屉时,图像会缩小一点,而当我们close 抽屉时,图像会恢复其大小。 我在Toolbar 中有这张图片。

我的代码:

<RelativeLayout
    android:layout_width="match_parent"
    android:layout_height="wrap_content">
    <android.support.v7.widget.Toolbar
        android:id="@+id/toolbar"
        android:layout_width="match_parent"
        android:layout_height="?attr/actionBarSize"
        app:layout_scrollFlags="scroll|enterAlways"
        android:background="@android:color/transparent"
        android:paddingLeft="10dp"/>
    <ImageView
        android:layout_width="wrap_content"
        android:layout_height="wrap_content"
        android:src="@drawable/left"
        android:layout_centerVertical="true"
        android:id="@+id/img"/>
</RelativeLayout>

我已经尝试通过添加以下代码来做到这一点

mImage.setAnimation(AnimationUtils.loadAnimation(context,R.anim.animation));

onDrawerClosed(View view)onDrawerOpened(View drawerView)

但这些都没有用,因为我需要让这个动画或过渡与抽屉移动同步。

如果有人有任何建议,请分享。

【问题讨论】:

  • 您是只想缩小和放大图像,还是也将其水平移动?
  • 其实我想把图片横向缩小放大
  • 那么,你想挤一下吗?同样的高度,但更薄?而且没有滑动?
  • 那种......我需要通过缩小或滑动来完成它,因为作为查看器它们是相同的
  • 嗯,我仍然不确定我是否完全得到了你想要的。看看this post。是这样的吗?实际上,我正在为我的答案创建一个更好、更灵活的解决方案,所以如果你想做的只是有点不同,让我知道怎么做。

标签: android drawerlayout


【解决方案1】:

实现DrawerLayout.DrawerListener并在void onDrawerSlide (View drawerView, float slideOffset)中计算动画逻辑。

img.animate().scaleX(slideOffset).scaleY(slideOffset);

您需要根据slideOffset 计算比例值。 此外,在 void onDrawerClosed (View drawerView) 中将比例重置为

img.animate().scaleX(1).scaleY(1);

【讨论】:

  • 嗨,我试过这个,这不是我想要的。正好相反……
  • @Atula 您需要调整 slideOffset 值。你需要计算像 img.animate().scaleX(1f - slideOffset).scaleY(1f - slideOffset);
  • 不像我想要的那样......它看起来像一页在翻转
猜你喜欢
  • 1970-01-01
  • 2021-01-10
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 2013-06-24
  • 1970-01-01
  • 1970-01-01
相关资源
最近更新 更多