如何将 PivotX 设置到视图的右边缘?(不适用于动画)

Sir*_*Lam 1 android android-layout android-view

View.setPivotX(float value) 
Run Code Online (Sandbox Code Playgroud)

起初我以为这个方法以“百分比”作为输入,其中0f代表左边缘,1f代表右边缘。

然而,经过测试,并非如此。而且从文档来看,虽然不是很清楚,但看起来我们需要传入一个像素的绝对位置。

我试过了,view.setPivotX(view.getRight())但结果不是我所期望的。视图变成了屏幕外。

那么......我如何正确地将视图旋转到其右边缘?(底部边缘相同,对于 PivotY)

PS请注意,我不是为了执行动画而要求的,我只是想按一定比例缩小视图的大小。

Ale*_*Nik 7

左上角:

view.setPivotX(0);
view.setPivotY(0);
Run Code Online (Sandbox Code Playgroud)

左中:

view.setPivotX(0);
view.setPivotY(view.getHeight() / 2);
Run Code Online (Sandbox Code Playgroud)

左下角:

view.setPivotX(0);
view.setPivotY(view.getHeight());
Run Code Online (Sandbox Code Playgroud)

如果您想在Activity onCreate()Fragment onCreateView(...)方法中设置透视(当视图尚未测量时),您可以执行以下操作:

view.getViewTreeObserver().addOnGlobalLayoutListener(new ViewTreeObserver.OnGlobalLayoutListener() {
        @Override
        public void onGlobalLayout() {
            view.setPivotX(0);
            view.setPivotY(0);                

            //some other view transformations

            view.getViewTreeObserver().removeOnGlobalLayoutListener(this);
        }
    });
Run Code Online (Sandbox Code Playgroud)