graphismes

  
Exploiter les fonctionnalités graphiques de plusieurs versions de la plate-forme Android

Ce tableau présente tous les artefacts du groupe androidx.graphics.

Artefact Version stable Version finale Version bêta Version alpha
Cœurs graphiques 1.0.0 - - -
chemin-graphique 1.0.1 - - -
formes-graphiques - 1.0.0-rc01 - -
Dernière mise à jour de la bibliothèque: 24 juillet 2024

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-rc01"
}

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-rc01")
}

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.

Signaler un nouveau problème

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-rc01

24 juillet 2024

Publication d'androidx.graphics:graphics-shapes:1.0.0-rc01, androidx.graphics:graphics-shapes-android:1.0.0-rc01 et androidx.graphics:graphics-shapes-desktop:1.0.0-rc01. La version 1.0.0-rc01 contient ces commits.

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

  • Autoriser la prérotation des formes pour commencer à un autre point. Cette modification permet aux formes pillStar de commencer leurs courbes à partir d'un point du périmètre qui n'est pas le point par défaut. Cela peut s'avérer utile lorsque vous animez le tracé de la forme pour commencer à dessiner à partir d'un emplacement spécifique sur le contour de la forme. (Ifbb4d, b/324303807).
  • Ajout de fonctions calculateBounds() à Morph, qui permettent de charger les mêmes fonctions en parallèle sur RoundedPolygon. (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() et pillStar() pour créer facilement ces formes arrondies ou étoilées. 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 de la courbe de Bézier sous-jacents), ainsi que les limites maximales possibles, qui peuvent être utiles pour déterminer la taille du conteneur qui le contient s'il doit faire l'objet d'une rotation dans ce conteneur. (I71827).

Modifications apportées à l'API

  • Ajout d'options pour récupérer les limites exacte et maximale. (I6d49f, b/317286450).

Correction de bugs

  • Des artefacts de rendu s'affichaient occasionnellement lors du dessin 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 supprimant toutes les courbes de longueur nulle (dont les formes n'ont pas besoin, ce qui réduit également la surcharge des tracés générés par les 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 inclut 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. Il est ainsi plus facile d'appeler depuis du code autre qu'Android (par exemple, du code Compose indépendant d'Android). Par exemple, l'API ne comporte aucun type Android, 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, passer de PointF à des paramètres Float distincts é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'itérer sur MutableCubics. Modification de l'interface fonctionnelle PointTransformer. Elle accepte désormais les coordonnées x et y d'un Point et renvoie un TransformedResult (qui est construit avec les coordonnées x et y transformées). (I6719e)
  • Suppression du constructeur public Cubic et en faire 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)
  • Paramètres PointF remplacés par des paires Float. (Id4705, b/276466399, b/290254314)
  • progress est désormais transmis directement aux commandes de dessin Morph. (Icdca2)

Correction de bugs

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 mises en majuscules et appelées via l'objet associé de RoundedPolygon: par exemple, RoundedPolygon.star(...)(I14735)

Correction de bugs

  • Correction d'un bug lié au 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 les arrondis, puis pour le lissage s'il reste de l'espace. (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 des polygones arrondis [facultatif].
  • La fonction Star (qui renvoie toujours un RoundedPolygon, comme précédemment) accepte désormais une valeur innerRadius au lieu du paramètre innerRadiusRatio précédent. Elle est dans les mêmes unités que le paramètre de rayon existant, ce qui rend les choses plus simples et plus cohérentes. De plus, le paramètre numOuterVertices a été renommé numVerticesPerRadius pour indiquer que le même nombre est appliqué aux rayons intérieur et externe.
  • La valeur CornerRounding.radius était auparavant documentée comme étant relative à la taille du polygone, mais elle était (et devrait être) une valeur absolue, et non relative. Les documents ont été mis à jour et l'annotation qui la limitait à 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'une animation simple ou automatique (animation) 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 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 obtenez ainsi des formes polygonales aux angles arrondis.
  • Utilisez la nouvelle API Morph(Polygon, Polygon) pour calculer automatiquement une forme "Transform" dont la progression peut être définie sur une valeur comprise entre 0 et 1 pour animer entre les formes de début et de fin. Animez ces progrès au fil du temps, en dessinant le résultat sur chaque image, pour 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 sur l'API < 34 (Id4629)

Version 1.0.0-beta02

10 janvier 2024

Les modifications apportées dans cette version visaient à 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éduisez la taille de libandroidx.graphics.path.so de 5%. (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

  • Divers correctifs 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 interne de la version de la plate-forme qui entraînait des problèmes lors de l'exécution sur les aperçus Android 14 (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 de 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 afin de déterminer l'opération et les données associées à ces segments.
  • La bibliothèque utilise des API similaires introduites dans la preview d'Android 14, mais cette version d'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 Graphics Core. Correction de bugs mineurs et amélioration 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 qui entraînait une double fermeture potentielle 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 nouvelle API LowLatencyCanvasView pour prendre en charge l'affichage à faible latence avec les API graphiques 2D d'Android (Canvas + Paint) dans la hiérarchie des vues.
  • Introduction de l'API CanvasBufferedRenderer pour prendre en charge le rendu Canvas avec accélération matérielle dans un HardwareBuffer. Elle permet de dessiner une partie d'une interface utilisateur dans un tampon pouvant être converti en bitmap à l'aide de l'API Bitmap.wrapHardwareBuffer.

Modifications apportées à l'API

  • Mise à jour de l'API CanvasBufferRenderer#releaseBuffer pour disposer d'un paramètre fence facultatif. Mise à jour de la documentation pour décrire quand RenderResult#fence est renvoyé. (If1ea7).
  • Ajout de la méthode draw à RenderRequest afin de prendre en charge l'utilisation de coroutines pour planifier des requêtes de dessin. Remplacement du nom de la méthode de dessin précédente qui consommait un exécuteur en drawAsync. Refactorisation de la méthode isClosed() en propriété. (I5bff6).
  • Exposition du paramètre de format de tampon à CanvasFrontBufferRenderer pour le mapper directement à CanvasBufferedRenderer.Builder#setBufferFormat. (I0f272)
  • Création de l'API CanvasBufferedRenderer pour gérer le rendu canevas avec accélération matérielle dans un HardwareBuffer. Cela fournit une implémentation rétroportée vers Android Q ainsi que la configuration d'une profondeur de chaîne de permutation de HardwareBuffers. La configuration de ColorSpace est toujours limitée à Android U+, mais l'implémentation de la compatibilité fournit un comportement no-op sur les applications au nom de l'utilisateur. (I9b1d8).
  • Ajout des API setFrameRate/clearFrameRate à SurfaceControlCompat.Transaction afin de contrôler la fréquence d'images en même temps que la stratégie de changement pour les transitions fluides ou par défaut. (I6045c).
  • Diminution du niveau d'API requis pour setDataSpace à Android Q à partir d'Android T. (I59c34).
  • Ajout d'un rappel onBufferReleased à l'API GLFrameBufferRenderer pour permettre aux consommateurs de nettoyer l'état lorsqu'un tampon n'est plus présenté. (I8a4e2)
  • Créez LowLatencyCanvasView pour un cas d'utilisation simple consistant à afficher du 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 de SurfaceView en gérant en interne l'instance SurfaceView qui est traduite hors/à l'écran pour un rendu synchronisé et un rendu à faible latence, respectivement. (I9253b).
  • Ajout de la prise en charge de la configuration des espaces de couleurs dans l'API CanvasFrontBufferedRenderer. Mise à jour des rappels multitampons pour inclure également le SurfaceControl 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. Cela permet de combiner des dépendances OpenGL, une configuration de chaîne d'échange, des formats de pixels et une configuration SurfaceControl. (Ic775b).

Modifications apportées à l'API

  • Ajout de paramètres de largeur et de hauteur à différentes API de rappel pour les dimensions des barres verticales à partir de SurfaceHolder#Callbacks. (I7f9fc).
  • Ajout d'une API claire pour effacer à la fois les couches avant et les couches en plusieurs tampons. (Ic1f95).
  • Ajout de la possibilité de configurer le type de tampon sous-jacent des chaînes d'échange utilisés dans GLFrontBufferedRenderer. (I07a13).
  • Ajout des propriétés Kotlin pour les getters sur GLFrameBufferRenderer, de l'annotation IntRange pour le nombre maximal d'entrées de tampon, et des annotations HardwareBufferFormart et HardwareBufferUsage pour setFormat/setUsage, respectivement. (Ief89e).
  • Mise à jour de l'API setBuffer sur les transactions SurfaceControl pour fournir une clôture de version. (Ice1bb).
  • Ajout des API SurfaceControlCompat.Transaction pour configurer l'espace de données et définir la plage de luminosités é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 utilisant l'API android.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 instances HardwareBuffer pouvant avoir une valeur nulle de mettre en miroir l'API de la plate-forme correspondante. (I173d7)
  • Renommez les méthodes faisant référence au rendu avec mise en mémoire tampon double en mode multitampon, car la chaîne de permutation de sauvegarde peut contenir plus de deux tampons. (I830d7).
  • Création de l'API CanvasFrontBufferedRenderer pour permettre à 3ps d'exploiter un système de rendu avec mise en mémoire tampon avant à l'aide de l'API Canvas. (Ibfc29).

Correction de bugs

  • Résolution du problème dans le cadre duquel GLFrontBufferedRenderer n'affichait pas 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 de l'avant était effacé prématurément.
  • Résolution du problème qui empêchait la suppression de SurfaceHolder.Callbacks après le lancement 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 objet BufferInfo contenant la largeur et la hauteur de la mémoire tampon, ainsi qu'un identifiant de tampon de frame permettant de recibler la destination d'origine après le rendu vers un tampon de travail intermédiaire. (I7fe20).
  • Consolidation de la création de SyncFence en méthode statique de fabrique sur SyncFenceCompat.
  • Suppression de la méthode de compatibilité publique pour eglDupNativeFenceFDANDROID au profit de la méthode de fabrique SyncFenceCompat pour la création de SyncFence. Cela permet de s'assurer que toutes les surfaces d'API reçoivent la bonne implémentation de SyncFence, quel que soit le niveau d'API. (I849bb).
  • Ajout de documentation pour FrameBufferRenderer et SyncStrategy.
    • Déplacement de FrameBufferRenderer + FrameBuffer + FrameBufferPool vers le package androidx.graphics.opengl
    • Déplacement de SyncStrategy vers le package androidx.graphics.opengl
    • RenderCallback#onDraw de documents mis à jour
    • Mise à jour de la documentation de RenderCallback#obtainFrameBuffer pour indiquer que l'outil d'implémentation de l'API est responsable de l'appel de FrameBuffer.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 package androidx.hardware pour mettre en miroir le framework
    • L'API SyncFence a été renommée SyncFenceV19 et a été rendue privée pour consolider les utilisations dans SyncFenceCompat, qui utilise l'API SyncFence du framework dans la mesure du possible. (I5149c).
  • Ajout des méthodes GLFrontBufferedRenderer#cancel et GLFrontBufferedRenderer#execute. Le premier est utile dans les scénarios de refus de la paume de la main où le rendu dans le tampon d'affichage doit être annulé et masquer le tampon d'affichage. Cette dernière est utile dans les scénarios permettant de manipuler des objets sur le thread GL sans avoir à planifier un rendu. (If0b7f).
  • Ajout d'une API pour effectuer le rendu directement dans la couche double mise en mémoire tampon. Cela facilite le rendu d'une scène après la reprise et permet aux consommateurs de déterminer de manière sélective quand exploiter dynamiquement le rendu avec mise en mémoire tampon frontale de manière dynamique en fonction de la scène souhaitée. (Ied56c).
  • Ajout d'une API à SurfaceControlCompat.Builder pour permettre la configuration du SurfaceControl parent à partir d'une autre instance SurfaceControl en plus du mécanisme existant d'un SurfaceView. (I1d1b6).
  • Possibilité de valeur nulle de type renvoyé accrue pour les fonctions obsolètes ou masquées. (Ibf7b0)
  • Ajout d'une constante d'extension EGL_ANDROID_get_native_client_buffer pour demander si l'appareil Android est compatible avec l'importation d'instances HardwareBuffer dans des objets EGLClientBuffer pouvant être utilisés comme une instance EGLImage. (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 pour addTransactionCommitListener, 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, comme SurfaceView et TextureView, entre autres.