View.setClipBounds()不限制View动画区域?

时间:2014-12-27 19:35:29

标签: java android android-layout animation viewanimator

我目前正在尝试做一个伪循环显示,它将在Lollipop以下的Android API级别上运行。所以,我有一个浮动动作按钮(FAB),我想要(按下时)垂直移动到RelativeLayout(在点击它之前,它位于RelativeLayout之外),然后按某个因子缩放,使它看起来像一个揭示。 / p>

我认为在FAB上使用.setClipBounds()会限制RelativeLayout区域中的缩放动画,但不幸的是缩放动画会扩展以接管整个活动区域。这是FAB点击监听器中的代码:

 circleFab.setOnClickListener(new OnClickListener() {

            @Override
            public void onClick(View v) {
                int cardHeight = relativeCardBuild.getHeight();
                int cardWidth = relativeCardBuild.getWidth();

                Log.i("RELAT H", "" + cardHeight);
                Log.i("RELAT W", "" + cardWidth);

                circleFab
                        .animate()
                        .translationY(-(cardHeight / 2))
                        .setInterpolator(new AccelerateDecelerateInterpolator())
                        .setDuration(200).start();
                tickFab.animate().alpha(0.0f).setDuration(200).start();

                circleFab.setClipBounds(new Rect(relativeCardBuild.getLeft(),
                        relativeCardBuild.getTop(), relativeCardBuild
                                .getRight(), relativeCardBuild.getBottom()));

                Log.i("left ", relativeCardBuild.getLeft()+"");
                Log.i("top ", relativeCardBuild.getTop()+"");
                Log.i("right ", relativeCardBuild.getRight()+"");
                Log.i("bottom ", relativeCardBuild.getBottom()+"");

                circleFab.animate().setStartDelay(100).scaleX(20.0f)
                        .scaleY(20.0f).setDuration(500).start();

            }
        });

relativeCardBuild的左,上,右和下点的记录值是正确的,所以我确实正确设置了circleFab布局的剪辑边界(它是一个包含椭圆可绘制和可绘制位图的FrameLayout)。然而,缩放动画占据整个活动屏幕。

我是否完全误解了.setClipBounds()在此实例中的作用?

0 个答案:

没有答案