Recientemente me encontré con la desaprobación de clipRect(Rect,Region.Op) , que me gustaría usar con DIFFERENCE . Esto fue reemplazado por clipOutRect(Rect) y por lo tanto implementé:
@Suppress("DEPRECATION") fun clipOutRect(canvas: Canvas, rect: Rect) = if (SDK_INT >= O) canvas.clipOutRect(rect) else canvas.clipRect(rect, DIFFERENCE)Ahora parece que podría ser un método de compatibilidad en AndroidX , pero por alguna razón no pude averiguar dónde podía encontrarlo exactamente.
¿Hay alguna clase que ya proporcione un método de compatibilidad para clipOutRect(Rect) ?
La respuesta corta es - no. Lo único relacionado con Canvas en AndroidX es este archivo: https://github.com/aosp-mirror/platform_frameworks_support/blob/androidx-master-dev/core/core-ktx/src/main/java/androidx/core/ gráficos/Canvas.kt
Respuesta larga. En primer lugar, Canvas se pasa a vista mediante código nativo, por lo que será incómodo tener algo como onDrawCompat(canvas: CanvasCompat) en la clase ViewCompat . Y creo que no hay ninguna razón para hacer eso en absoluto. Además, en realidad no es ese tipo de desaprobación lo que debería preocuparte. Por ejemplo WifiManager.startScan() se anota con
Este método quedó obsoleto en el nivel de API 28. La capacidad de las aplicaciones para activar solicitudes de análisis se eliminará en una versión futura.
Eso dice Change this code now, or it will be broken year later
Ese no es el caso con clipRect , se mantendrá por compatibilidad con versiones anteriores con aplicaciones que nunca se actualizarán durante años o incluso una décima de años. La advertencia de desaprobación para esto es como Hey, we have new method with better functionality/name, if you target minimum is API 26 you can use that