graphismes
Ce tableau liste tous les artefacts du groupe androidx.graphics
.
Artefact | Version stable | Version finale | Version bêta | Version alpha |
---|---|---|---|---|
graphique-core | 1.0.0 | - | - | - |
tracé-graphique | 1.0.1 | - | - | - |
formes graphiques | - | - | 1.0.0-beta01 | - |
Déclarer des dépendances
Pour ajouter une dépendance sur Graphics, vous devez ajouter le dépôt Maven de Google à votre projet. Pour en savoir plus, consultez la section Dépôt Maven de Google.
Ajoutez les dépendances correspondant aux artefacts dont vous avez besoin dans le fichier build.gradle
de votre application ou de votre module :
Groovy
dependencies { implementation "androidx.graphics:graphics-core:1.0.0" implementation "androidx.graphics:graphics-path:1.0.1" implementation "androidx.graphics:graphics-shapes:1.0.0-beta01" }
Kotlin
dependencies { implementation("androidx.graphics:graphics-core:1.0.0") implementation("androidx.graphics:graphics-path:1.0.1") implementation("androidx.graphics:graphics-shapes:1.0.0-beta01") }
Pour en savoir plus sur les dépendances, consultez Ajouter des dépendances de compilation.
Commentaires
Vos commentaires nous aident à améliorer Jetpack. N'hésitez pas à nous contacter si vous découvrez de nouveaux problèmes ou si vous avez des idées pour améliorer cette bibliothèque. Veuillez consulter les problèmes existants de cette bibliothèque avant d'en signaler un nouveau. Vous pouvez ajouter votre vote à un problème existant en cliquant sur le bouton en forme d'étoile.
Pour en savoir plus, consultez la documentation sur l'outil Issue Tracker.
Aucune note de version pour cet artefact.
Graphics Shapes version 1.0
Version 1.0.0-beta01
1er mai 2024
Publication d'androidx.graphics:graphics-shapes:1.0.0-beta01
, androidx.graphics:graphics-shapes-android:1.0.0-beta01
et androidx.graphics:graphics-shapes-desktop:1.0.0-beta01
. La version 1.0.0-beta01 contient ces commits.
Modifications apportées à l'API
- Permet la prérotation des formes pour qu'elles commencent à un point différent. Ce changement permet aux formes
pillStar
de commencer leurs courbes à partir d'un point non défini par défaut sur le périmètre. Cela peut être utile lorsque vous tracez un tracé sur le tracé de la forme, pour commencer à dessiner à partir d'un point spécifique du contour. (Ifbb4d, b/324303807). - Ajout de fonctions
calculateBounds()
à Morph, qui permettent d'exécuter les mêmes fonctions surRoundedPolygon
. (I8a3b6, b/325463575).
Version 1.0.0-alpha05
7 février 2024
Publication d'androidx.graphics:graphics-shapes:1.0.0-alpha05
, androidx.graphics:graphics-shapes-android:1.0.0-alpha05
et androidx.graphics:graphics-shapes-desktop:1.0.0-alpha05
. Liste des commits de la version 1.0.0-alpha05
Nouvelles fonctionnalités
- La bibliothèque propose désormais de nouvelles fonctions
pill()
etpillStar()
pour créer facilement ces formes arrondies/étoiles. Il existe également de nouvelles API permettant de calculer les limites exactes requises pour une forme (les limites précédentes n'étaient qu'une estimation basée sur les points d'ancrage et de contrôle sous-jacents de la courbe de Bezier), ainsi que les limites maximales possibles, qui peuvent s'avérer utiles pour déterminer la taille du conteneur qui le contient s'il doit être pivoté dans ce conteneur. (I71827).
Modifications apportées à l'API
- Ajout d'options supplémentaires pour récupérer les limites exactes et maximales. (I6d49f, b/317286450).
Correction de bugs
- Des artefacts de rendu étaient parfois présents lors du tracé de ces formes sous forme de tracés, en raison d'un problème de rendu de bas niveau lié aux courbes de longueur nulle. Ce bug a été corrigé en éliminant toutes les courbes de longueur nulle (dont les formes n'ont pas besoin, ce qui a permis de réduire la surcharge des tracés générés par ces formes).
Version 1.0.0-alpha04
13 décembre 2023
Publication d'androidx.graphics:graphics-shapes:1.0.0-alpha04
, androidx.graphics:graphics-shapes-android:1.0.0-alpha04
et androidx.graphics:graphics-shapes-desktop:1.0.0-alpha04
. Liste des commits de la version 1.0.0-alpha04
Nouvelles fonctionnalités
- Cette version contient plusieurs modifications de l'API, ainsi que des corrections de bugs.
- De nombreuses modifications apportées à l'API rendent la bibliothèque Shapes compatible avec KMP. Cela facilite les appels à partir de code autre qu'Android (comme le code Compose indépendant d'Android). Par exemple, il n'existe aucun type Android dans l'API, comme les précédents types PointF, Matrix et Path.
- Plusieurs modifications ont également été apportées aux API et à l'implémentation pour des raisons de performances, en particulier pour minimiser l'allocation (et la collecte d'objets). Par exemple, le passage de PointF à des paramètres Float séparés évite d'allouer de nombreuses structures PointF temporaires pour contenir ces sommets.
Modifications apportées à l'API
- Remplacement de
Morph.asMutableCubics
par une fonction permettant d'effectuer une itération surMutableCubics
. Modification de l'interface fonctionnellePointTransformer
. Elle accepte désormais les coordonnées X et Y d'unPoint
et renvoie unTransformedResult
(construit avec les coordonnées X et Y transformées). (I6719e) - Suppression du constructeur public
Cubic
, qui devient une fonction de fabrique. (I409ce). - Ajout d'API de transformation et de dessin spécifiques à Android. (I079f6, b/292289543)
- Élimination des dépendances Android. (Iadc1c, b/292289543)
- Les noms des propriétés d'ancrage et de contrôle sont désormais plus logiques. (If13bd, b/294562941)
- Les paramètres
PointF
ont été remplacés par des pairesFloat
. (Id4705, b/276466399, b/290254314) progress
est désormais transmis directement aux commandes de dessinMorph
. (Icdca2)
Correction de bugs
- Correction d'un bug lors de la création de grandes formes. (I4fd66, b/313497325).
Version 1.0.0-alpha03
7 juin 2023
Publication d'androidx.graphics:graphics-shapes:1.0.0-alpha03
. Liste des commits de la version 1.0.0-alpha03
Modifications apportées à l'API
- Ajout d'une fonction
RoundedPolygon.rectangle()
. (I78e7e, b/280322189) - Les fonctions Étoile et Cercle sont désormais sans majuscules et appelées via l'objet associé de
RoundedPolygon
: par exemple,RoundedPolygon.star(...)
(I14735).
Correction de bugs
- Correction d'un bug de lissage. (Ibf894)
- Correction d'un bug qui survenait lorsque les formes de début et de fin étaient identiques. Mieux répartir l'espace disponible sur le côté pour les coupes, en utilisant d'abord l'espace disponible pour arrondir, puis pour lisser s'il reste de la place. (Ibd320, b/277936300).
Version 1.0.0-alpha02
19 avril 2023
Publication d'androidx.graphics:graphics-shapes:1.0.0-alpha02
. Liste des commits de la version 1.0.0-alpha02.
Modifications apportées à l'API
- La super-classe Polygon a été fusionnée avec sa sous-classe,
RoundedPolygon
. Tous les polygones sont désormais [éventuellement] des polygones arrondis. - La fonction "Star" (qui renvoie toujours un
RoundedPolygon
, comme précédemment) utilise désormais une valeurinnerRadius
au lieu du paramètreinnerRadiusRatio
précédent. Ils sont exprimés dans les mêmes unités que le paramètre de rayon existant, ce qui simplifie et améliore la cohérence. De plus, le paramètrenumOuterVertices
a été renomménumVerticesPerRadius
pour indiquer que le même nombre est appliqué aux rayons internes et externes. CornerRounding.radius
était précédemment documentée comme étant relative à la taille du polygone, mais il s'agissait (et devrait être) une valeur absolue, et non relative. Les documents ont été mis à jour et l'annotation la limitant à une valeur maximale de 1.0 a été corrigée.
Version 1.0.0-alpha01
5 avril 2023
Graphics-Shapes est une nouvelle bibliothèque qui permet de créer et d'afficher facilement des formes polygonales arrondies, ainsi qu'un morphing (animation) simple et automatique entre différentes formes.
Publication d'androidx.graphics:graphics-shapes:1.0.0-alpha01
. Cette version a été publiée à partir d'une branche interne.
Nouvelles fonctionnalités
- Utilisez l'API Polygon pour créer des polygones réguliers et des polygones en étoile avec le nombre de sommets souhaité.
- Utilisez les paramètres
CornerRounding
facultatifs pour spécifier le rayon d'arrondi et les paramètres de lissage des angles. Vous obtiendrez ainsi des formes polygonales avec des angles arrondis. - Utilisez la nouvelle API
Morph(Polygon, Polygon)
pour calculer automatiquement une forme "transformer" dont la progression peut être définie entre 0 et 1 pour l'animer entre les formes de début et de fin. Animez cette progression au fil du temps, en dessinant le résultat sur chaque image, afin de créer une animation fluide entre ces nouvelles formes arrondies.
Graphics Path version 1.0
Version 1.0.1
1er mai 2024
Publication d'androidx.graphics:graphics-path:1.0.1
. La version 1.0.1 contient ces commits.
Correction de bugs
- Améliorations apportées aux indicateurs de compilation.
Version 1.0.0
6 mars 2024
Publication d'androidx.graphics:graphics-path:1.0.0
.
Version 1.0.0-rc01
21 février 2024
Publication d'androidx.graphics:graphics-path:1.0.0-rc01
. Liste des commits de la version 1.0.0-rc01
Correction de bugs
- Amélioration des performances de PathIterator pour les API inférieures à 34. (Id4629)
Version 1.0.0-beta02
10 janvier 2024
Les modifications apportées dans cette version ont pour but de réduire la taille de la bibliothèque, qui était plus importante que nécessaire en raison des hypothèses formulées par le code natif.
Publication d'androidx.graphics:graphics-path:1.0.0-beta02
. Liste des commits de la version 1.0.0-beta02
Correction de bugs
- Réduction de 96 % de la taille de
libandroidx.graphics.path.so
. (I71397). - Réduction de 5 % de la taille de
libandroidx.graphics.path.so
. (I2da7c). - Réduction de 43 % des composants natifs de
androidx.graphics:graphics-path
. (I8e40d).
Version 1.0.0-beta01
29 novembre 2023
Publication d'androidx.graphics:graphics-path:1.0.0-beta01
. Liste des commits de la version 1.0.0-beta01
Modifications apportées à l'API
- Suppression des utilisations de l'API
isAtLeastU()
expérimentale. (Ie9117, b/289269026)
Correction de bugs
- Plusieurs corrections et améliorations des performances, y compris la façon dont la bibliothèque gère les coniques.
Version 1.0.0-alpha02
7 juin 2023
Publication d'androidx.graphics:graphics-path:1.0.0-alpha02
. Cette version est développée dans une branche interne.
Nouvelles fonctionnalités
- Correction d'un problème lié à la vérification de la version interne de la plate-forme, qui entraînait des problèmes lors de l'exécution sur Android 14 Preview (la vérification de la version échouait, mais le mécanisme permettant d'effectuer des tâches sur les versions précédentes ne fonctionnait pas correctement sur Android 14 en particulier).
Version 1.0.0-alpha01
22 mars 2023
Publication d'androidx.graphics:graphics-path:1.0.0-alpha01
. Liste des commits de la version 1.0.0-alpha01
Nouvelles fonctionnalités
- Cette nouvelle bibliothèque permet d'interroger les données du chemin d'accès via la nouvelle API
PathIterator
. Grâce à cette API, les appelants peuvent itérer tous les segments d'un objet Chemin pour déterminer l'opération et les données de ces segments. - La bibliothèque utilise des API similaires introduites dans la version preview d'Android 14, mais cette version AndroidX de l'API fonctionne également sur les versions antérieures à l'API 21.
Graphics Core version 1.0
Version 1.0.0
29 mai 2024
Publication d'androidx.graphics:graphics-core:1.0.0
. La version 1.0.0 contient ces commits.
Principales fonctionnalités de la version 1.0.0
- Version stable officielle de la bibliothèque Graph-core. Inclut des corrections de bugs mineurs et des améliorations des performances par rapport à la version 1.0.0-rc01
Version 1.0.0-rc01
17 avril 2024
Publication d'androidx.graphics:graphics-core:1.0.0-rc01
. Cette version est développée dans une branche interne.
Correction de bugs
- Correction d'un problème pouvant entraîner la double fermeture des descripteurs de fichier avec
CanvasBufferedRendererAPI
sur certains appareils Android équipés d'Android 14. - Correction d'un problème qui empêchait
FrameBuffer
de supprimer correctement les instances de framebuffer.
Version 1.0.0-beta01
13 décembre 2023
Publication d'androidx.graphics:graphics-core:1.0.0-beta01
. Liste des commits de la version 1.0.0-beta01
Nouvelles fonctionnalités
- Introduction d'une API
LowLatencyCanvasView
pour permettre un rendu à faible latence avec les API graphiques 2D d'Android (Canvas + Paint) dans la hiérarchie des vues. - Introduction de l'API
CanvasBufferedRenderer
pour permettre le rendu Canvas avec accélération matérielle dans unHardwareBuffer
. Cela permet de dessiner une partie d'une interface utilisateur dans un tampon qui peut être converti en bitmap à l'aide de l'APIBitmap.wrapHardwareBuffer
.
Modifications apportées à l'API
- Mise à jour de l'API
CanvasBufferRenderer#releaseBuffer
pour inclure un paramètre de cloisonnement facultatif. Mise à jour de la documentation pour décrire quandRenderResult#fence
est renvoyé. (If1ea7). - Ajout de la méthode
draw
àRenderRequest
pour permettre l'utilisation de coroutines pour planifier des requêtes de dessin. Changement de nom : la méthode de dessin précédente qui consommait un exécuteur a été renomméedrawAsync
. Refactorisation de la méthodeisClosed()
en propriété. (I5bff6). - Paramètre de format de tampon exposé à
CanvasFrontBufferRenderer
pour le mapper directement àCanvasBufferedRenderer.Builder#setBufferFormat
. (I0f272) - Création de l'API
CanvasBufferedRenderer
pour gérer le rendu du canevas avec accélération matérielle dans unHardwareBuffer
. Cela fournit une implémentation rétroportée vers Android Q, ainsi que la configuration d'une profondeur de chaîne de permutation deHardwareBuffers
. La configurationColorSpace
est toujours limitée à Android U+, mais l'implémentation de compatibilité assure un comportement no-op au nom des développeurs. (I9b1d8). - Ajout des API
setFrameRate
/clearFrameRate
àSurfaceControlCompat.Transaction
afin de contrôler la fréquence d'images en parallèle de la stratégie de changement, et ainsi créer des transitions fluides ou par défaut. (I6045c). - Réduction du niveau d'API requis pour
setDataSpace
vers Android Q par rapport à Android T. (I59c34). - Ajout d'un rappel
onBufferReleased
à l'APIGLFrameBufferRenderer
pour permettre aux consommateurs de nettoyer l'état lorsqu'un tampon n'est plus présenté. (I8a4e2) - Créez
LowLatencyCanvasView
pour faciliter un cas d'utilisation simple de rendu de contenu avec une faible latence, qui est synchronisé avec le rendu de la hiérarchie des vues. Cela atténue les complexités associées à la gestion deSurfaceView
en gérant en interne l'instanceSurfaceView
qui est traduite hors/à l'écran pour un affichage synchronisé et à faible latence, respectivement. (I9253b). - Ajout de la prise en charge de la configuration des espaces de couleurs à l'API
CanvasFrontBufferedRenderer
. Mise à jour des rappels multitampons pour inclure également leSurfaceControl
mis en mémoire tampon arrière. (I24bd9)
Version 1.0.0-alpha05
6 septembre 2023
Publication d'androidx.graphics:graphics-core:1.0.0-alpha05
. Liste des commits de la version 1.0.0-alpha05.
Nouvelles fonctionnalités
- Introduction de l'API
GLFrameBufferRenderer
. Elle combine des dépendances OpenGL, une configuration de la chaîne de permutation, des formats de pixels et une configurationSurfaceControl
. (Ic775b).
Modifications apportées à l'API
- Ajout de paramètres de largeur et de hauteur à diverses API de rappel pour les dimensions des barres verticales à partir de
SurfaceHolder#Callbacks
. (I7f9fc). - Ajout d'une API claire pour effacer les couches avant et multiples en mémoire tampon. (Ic1f95).
- Ajout de la possibilité de configurer le type de tampon sous-jacent des chaînes de permutation utilisées dans
GLFrontBufferedRenderer
. (I07a13). - Ajout de propriétés Kotlin pour les getters sur
GLFrameBufferRenderer
, l'annotationIntRange
pour le nombre maximal d'entrées de tampon, et les annotationsHardwareBufferFormart
etHardwareBufferUsage
poursetFormat
/setUsage
, respectivement. (Ief89e). - Mise à jour de l'API
setBuffer
sur les transactionsSurfaceControl
afin de créer une barrière de libération. (Ice1bb). - Ajout des API
SurfaceControlCompat.Transaction
pour configurer l'espace de données et définir la plage de luminosité étendue. (Ic378d).
Version 1.0.0-alpha04
7 juin 2023
Publication d'androidx.graphics:graphics-core:1.0.0-alpha04
. Liste des commits de la version 1.0.0-alpha04
Nouvelles fonctionnalités
- Introduction de
CanvasFrontBufferedRenderer
pour prendre en charge les graphiques à faible latence exploitant l'APIandroid.graphics.Canvas
en plus de l'implémentation OpenGL existante.
Modifications apportées à l'API
- Mise à jour de l'API
SurfaceControlCompat.Transaction#setBuffer
pour permettre aux instancesHardwareBuffer
nullables de mettre en miroir l'API de plate-forme correspondante. (I173d7) - Changement de nom : les méthodes faisant référence au rendu avec double tampon sont remplacées par des méthodes multitampons, car la chaîne de permutation de sauvegarde peut contenir plus de deux tampons. (I830d7).
- Création de l'API
CanvasFrontBufferedRenderer
pour permettre aux tiers d'exploiter un système de rendu en mémoire tampon d'affichage à l'aide de l'API Canvas. (Ibfc29).
Correction de bugs
- Correction d'un problème qui empêchait
GLFrontBufferedRenderer
d'afficher le contenu après la reprise de l'activité correspondante. - Résolution du problème dans le cadre duquel le contenu mis en mémoire tampon au premier plan était effacé prématurément.
- Correction d'un problème qui empêchait la suppression de
SurfaceHolder.Callbacks
après la publication des API graphiques à faible latence.
Version 1.0.0-alpha03
22 mars 2023
Publication d'androidx.graphics:graphics-core:1.0.0-alpha03
. Liste des commits de la version 1.0.0-alpha03
Modifications apportées à l'API
- Mise à jour de l'implémentation du rappel
GLFrontBufferedRenderer
pour fournir un objetBufferInfo
contenant la largeur et la hauteur du tampon, ainsi qu'un identifiant de tampon d'images pouvant être utilisé pour recibler la destination d'origine après le rendu dans un tampon de travail intermédiaire. (I7fe20). - Consolidation de la création de
SyncFence
vers la méthode de fabrique statique surSyncFenceCompat
. - Suppression de la méthode de compatibilité publique pour
eglDupNativeFenceFDANDROID
au profit de la méthode de fabriqueSyncFenceCompat
pour la création de SyncFence. Cela permet de garantir que toutes les surfaces d'API reçoivent la bonne implémentation deSyncFence
, quel que soit le niveau d'API. (I849bb). - Ajout de documentation pour
FrameBufferRenderer
etSyncStrategy
.- Déplacement de
FrameBufferRenderer
+FrameBuffer
+FrameBufferPool
vers le packageandroidx.graphics.opengl
- Déplacement de
SyncStrategy
vers le packageandroidx.graphics.opengl
RenderCallback#onDraw
documents mis à jour- Mise à jour de la documentation de
RenderCallback#obtainFrameBuffer
indiquant que l'outil d'implémentation de l'API est chargé d'appelerFrameBuffer.close
- Mise à jour de
onDrawComplete
pour indiquer aux consommateurs qu'ils doivent envoyer les contenus à afficher. - Déplacement des interfaces/classes de compatibilité
SyncFence
vers le packageandroidx.hardware
pour mettre en miroir le framework - L'API
SyncFence
a été renomméeSyncFenceV19
et rendue privée pour regrouper les utilisations dansSyncFenceCompat
, qui exploite autant que possible l'APISyncFence
du framework. (I5149c).
- Déplacement de
- Ajout des méthodes
GLFrontBufferedRenderer#cancel
etGLFrontBufferedRenderer#execute
. Le premier est utile dans les scénarios de rejet de la paume de la main où le rendu dans le tampon d'affichage doit être annulé et masquer le tampon d'affichage. Ce dernier est utile dans les scénarios pour manipuler des objets sur le thread GL sans avoir à planifier un rendu. (If0b7f). - Ajout d'une API pour effectuer un rendu direct sur la double couche de mémoire tampon. Cela permet de réafficher une scène après la reprise et permet aux utilisateurs de déterminer de manière sélective quand utiliser le rendu en mémoire tampon d'affichage de manière dynamique en fonction de la scène souhaitée. (Ied56c).
- Ajout d'une nouvelle API à
SurfaceControlCompat.Builder
pour permettre la configuration duSurfaceControl
parent à partir d'une autre instanceSurfaceControl
, en plus du mécanisme existant à partir d'unSurfaceView
. (I1d1b6). - Possibilité de valeur nulle de type renvoyé accrue pour les fonctions obsolètes ou masquées. (Ibf7b0)
- Ajout de la constante d'extension
EGL_ANDROID_get_native_client_buffer
pour déterminer si l'appareil Android est compatible avec l'importation d'instancesHardwareBuffer
dans des objetsEGLClientBuffer
pouvant être utilisés en tant qu'instanceEGLImage
. (Iad767). - Ajout de l'annotation
@JvmDefaultWithCompatibility
. (I8f206)
Version 1.0.0-alpha02
9 novembre 2022
Publication d'androidx.graphics:graphics-core:1.0.0-alpha02
. Liste des commits de la version 1.0.0-alpha02.
Modifications apportées à l'API
- Correction de l'annotation
RequiresApi
manquante pouraddTransactionCommitListener
, introduite dans Android S. (I0a035) - Les rappels de tampon
onDraw<Front/Double>
ont été mis à jour pour fournir une matrice de transformation que les consommateurs peuvent transmettre à leurs nuanceurs de sommet en plus de la largeur/hauteur de tampon actuelle. Les consommateurs doivent utiliser ces paramètres pour effectuer une prérotation correcte de leur code de rendu OpenGL. (I82f9e)
Correction de bugs
- Amélioration de la latence graphique grâce à la prérotation des tampons avant l'émission de transactions
SurfaceControl
. - Résolution du problème lié aux journaux d'erreurs qui affichaient l'erreur 300d (EGL_BAD_SURFACE).
- Résolution du problème où
GLFrontBufferedRenderer
n'était pas valide après la réactivation de l'activité correspondante. - Amélioration de la compatibilité avec les émulateurs et les appareils Chrome OS.
- Résolution de problème qui entraînait le masquage prématuré de la couche avant de la mémoire tampon.
Version 1.0.0-alpha01
24 octobre 2022
Publication d'androidx.graphics:graphics-core:1.0.0-alpha01
. Liste des commits de la version 1.0.0-alpha01
Nouvelles fonctionnalités
- Version initiale de la bibliothèque graphique principale AndroidX. Inclut les API compatibles avec les cas d'utilisation à faible latence, comme la saisie au stylet. Introduction également d'API d'aide pour utiliser OpenGL.
Modifications apportées à l'API
- Introduction de
GLFrontBufferedRenderer
pour faciliter l'affichage multitampon et avant, afin d'obtenir une sortie à faible latence et de haute qualité. - Introduction de l'API
GLRenderer
pour faciliter le rendu OpenGL pour divers fournisseurs de surfaces, commeSurfaceView
etTextureView
, entre autres.