gpt4 book ai didi

android - AndroidX 中的 Canvas clipOutRect 兼容性

转载 作者:塔克拉玛干 更新时间:2023-11-03 01:10:27 26 4
gpt4 key购买 nike

我最近遇到了 clipRect(Rect,Region.Op) 的弃用,我想将其与 DIFFERENCE 一起使用。这被替换为 clipOutRect(Rect) 因此我实现了:

@Suppress("DEPRECATION")
fun clipOutRect(canvas: Canvas, rect: Rect) =
if (SDK_INT >= O) canvas.clipOutRect(rect)
else canvas.clipRect(rect, DIFFERENCE)

现在这看起来像是 AndroidX 中的一种兼容方法,但出于某种原因我无法弄清楚,在哪里可以找到它。

是否有类已经为clipOutRect(Rect)提供了兼容方法?

最佳答案

简短的回答是——不。 AndroidX 中唯一与 Canvas 相关的是这个文件:https://github.com/aosp-mirror/platform_frameworks_support/blob/androidx-master-dev/core/core-ktx/src/main/java/androidx/core/graphics/Canvas.kt

长答案。首先,Canvas是通过native code传给view的,所以在ViewCompat里有类似onDrawCompat(canvas: CanvasCompat)的东西会很别扭> 类。我认为根本没有理由这样做。此外,这真的不是您应该担心的那种类型的弃用。例如 WifiManager.startScan() 被标记为

This method was deprecated in API level 28. The ability for apps to trigger scan requests will be removed in a future release.

也就是说 现在更改此代码,否则一年后它会被破坏

clipRect 不是这种情况,它会被保留以向后兼容那些几年甚至十年都不会更新的应用程序。弃用警告就像 嘿,我们有功能/名称更好的新方法,如果你的目标最低是 API 26,你可以使用它

关于android - AndroidX 中的 Canvas clipOutRect 兼容性,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/54843254/

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