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请注意,我不是为了执行动画而要求的,我只是想按一定比例缩小视图的大小。
左上角:
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)
| 归档时间: |
|
| 查看次数: |
1740 次 |
| 最近记录: |