gpt4 book ai didi

android - 了解 Android Canvas 裁剪

转载 作者:塔克拉玛干 更新时间:2023-11-02 22:27:58 25 4
gpt4 key购买 nike

我很难找到这个问题的答案。考虑下面的剪辑代码:

           boolean is_ok = mycanvas.clipRect(clip_left, clip_top, clip_right+1, clip_bottom+1);
mycanvas.getClipBounds(clipRect);
if (!is_ok ||
clipRect.left != clip_left ||
clipRect.top != clip_top ||
clipRect.right != clip_right+1 ||
clipRect.bottom != clip_bottom+1)
{
Log.i("DEBUG", "setClipping failed");
}

当返回剪辑边界时,它们与刚刚设置的不匹配。例如,如果 clip_left、clip_top、clip_right、clip_bottom 是 (100,50,109, 59),那么根据上面的代码,我希望剪裁范围是 (100, 50, 110, 60)。它不是。 getClipBounds() 返回 (100, 51, 110, 60)。

为什么我把它设置为50时top = 51?幕后有些东西我还不明白。

最佳答案

好的,我需要先看清楚再提问。如果有人感兴趣,我会自己回答:

当设置一个新的 clipRect 时,我假设它会替换之前的裁剪。事实并非如此。相反,它会与之前的剪辑创建一个交集。来自 Android 开发者页面:

clipRect(float left, float top, float right, float bottom)

Intersect the current clip with the specified rectangle, which is expressed in local coordinates.

关于android - 了解 Android Canvas 裁剪,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/10941416/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com