首页
学习
活动
专区
工具
TVP
发布
社区首页 >问答首页 >Android工具栏和Twitter等用户图像动画

Android工具栏和Twitter等用户图像动画
EN

Stack Overflow用户
提问于 2016-05-05 04:41:50
回答 2查看 5.4K关注 0票数 17

我正在尝试实现工具栏、和用户图像动画,就像推特的用户配置文件中使用的那样。

我尝试了很多东西,但我无法实现快速固定在屏幕顶部的折叠工具栏与它的一些背景,当它被展开时,使用户图像首先在工具栏上,然后缩小并在滚动时移动到工具栏下方。

twitter是如何在用户个人资料图像中实现平滑效果的?他们是如何将这个图像放在工具栏前面,然后滚动到工具栏后面,并在工具栏下面实现平滑效果的呢?

我尝试了以下所有场景:

具有视差效果的CollapseParallaxMultiplier

  • 工具栏。?attr/actionBarSize.
  • 2
  • 固定工具栏设置高度100dp和minHeight UserImage工具栏,一个带有图像背景,另一个带有透明背景

,然后平滑地移动Y位置(滚动时无法达到将用户图像发送到工具栏下方的效果)。

之前的场景对我来说都不是很好。

XML层次结构:

代码语言:javascript
复制
<android.support.design.widget.CoordinatorLayout>
    <android.support.design.widget.AppBarLayout>
       <android.support.design.widget.CollapsingToolbarLayout>
             <LinearLayout>
                   <!--Some TextViews and ImageViews-->
             </LinearLayout>
             <ImageView src="My User profile Img"/> <!--Image first above toolbar and when toolbar is collapsing scale down and then go below toolbar-->
             <ImageView src="My background"  app:layout_collapseMode="parallax" app:layout_collapseParallaxMultiplier="0.8"/> 
             <android.support.v7.widget.Toolbar app:layout_collapseMode="pin"/>
       </android.support.design.widget.CollapsingToolbarLayout>
    </android.support.design.widget.AppBarLayout>

  <!--Second Part, where the ViewPager should be pinned below the Toolbar-->
  <NestedScrollView app:layout_behavior="@string/appbar_scrolling_view_behavior">
   <LinearLayout> 
      <android.support.design.widget.TabLayout/>
      <android.support.v4.view.ViewPager/>
     </LinearLayout>
     </NestedScrollView>
</android.support.design.widget.CoordinatorLayout>

在附件中,您可以看到Twitter对用户配置文件活动的影响。

EN

回答 2

Stack Overflow用户

发布于 2016-05-05 05:39:30

我相信你的尝试比它应该做的更难

CollapsingToolbarLayout有这个通常与颜色一起使用的contentScrim元素,但实际上它可以是任何可绘制的。

从源代码中,您可以看到它直接绘制在Toolbar后面

//这有点奇怪。我们的scrim需要在工具栏后面(如果它存在),

//但是在它后面的任何其他孩子面前。为此,我们截取

// drawChild()调用,在绘制工具栏时先绘制我们的scrim

https://android.googlesource.com/platform/frameworks/support/+/refs/heads/master/design/src/android/support/design/widget/CollapsingToolbarLayout.java#271

因此,我想您可以从“标准”XML布局开始:

`协调器-> AppBar -> CollapsingToolbar ->工具栏

然后用一些BitmapDrawable调用setContentScrim,看看会发生什么。

代码语言:javascript
复制
collapsingToolbar.setContentScrim(
                   context.getResources()
                     .getDrawable(R.drawable.something);

在那之后,你需要一些几何图形来使它看起来完全正确,但这不是我的回答范围。推特似乎也让图片变得有点模糊,但这是一个不同的问题(使用RenderScript)。

此外,当您滚动视图时,scrim可能会不断移动,那么您可能需要创建一个自定义的可绘制,它将允许您偏移绘制位置以使其看起来合适。但这些都是“也许”和“但是”。主要的想法就在这里。

票数 5
EN

Stack Overflow用户

发布于 2016-05-11 13:24:37

您可以尝试下面的xml文件:

代码语言:javascript
复制
<android.support.design.widget.CoordinatorLayout >
     <android.support.design.widget.AppBarLayout>
         <android.support.design.widget.CollapsingToolbarLayout
            app:layout_scrollFlags="scroll|exitUntilCollapsed"
            app:contentScrim="?attr/colorPrimary">
             <ImageView
                app:layout_collapseMode="parallax"/>

            <android.support.v7.widget.Toolbar
                app:layout_collapseMode="pin" />
         </android.support.design.widget.CollapsingToolbarLayout>

    </android.support.design.widget.AppBarLayout>

      <NestedScrollView app:layout_behavior="@string/appbar_scrolling_view_behavior">
   <LinearLayout> 
      <android.support.design.widget.TabLayout/>
      <android.support.v4.view.ViewPager/>
     </LinearLayout>
     </NestedScrollView>

</android.support.design.widget.CoordinatorLayout>

还可以使用PalleteCollapsingToolbar.添加视差颜色

有关更多详细信息,请参阅此link

票数 -1
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/37037621

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档