android - 翻译同一 View 组中的 View-LMLPHP

我想在同一视图组中明智地转换此圆形图像百分比。根据我得到的数据,“新位置”可以是30%或50%或100%的任何值。

我该如何实现?

最佳答案

试试这个代码:

mContainerView.getViewTreeObserver().addOnGlobalLayoutListener(new ViewTreeObserver.OnGlobalLayoutListener() {
    @Override
    public void onGlobalLayout() {
        mContainerView.getViewTreeObserver().removeOnGlobalLayoutListener(this);
        // Start animation here so getHeight won't return 0

        int maxTranslateDistance = mContainerView.getHeight() - mCircleView.getHeight();

        float percent = 1;  // Within 0 - 1

        mCircleView.animate().translationY((int)(maxTranslateDistance * percent)).setDuration(0).start();
    }
});


mContainerView是容器LinearLayoutmCircleView是圆形视图。您计算出最大距离可以同时换算为两个高度,再乘以百分比(0-1)即可得出最终距离。

如果在屏幕上完全绘制布局后开始动画,则可以删除getViewTreeObserver().addOnGlobalLayoutListener部分。

07-25 22:08