grafica

  
Sfrutta le strutture grafiche di diverse release della piattaforma Android

Questa tabella elenca tutti gli elementi del gruppo androidx.graphics.

Elemento Release stabile Candidato per l'uscita Versione beta Release alpha
con core grafico 1.0.0 - - -
traccia-grafica 1.0.1 - - -
forme-grafica - 1.0.0-rc01 - -
Ultimo aggiornamento di questa raccolta: 24 luglio 2024

Dichiarazione delle dipendenze

Per aggiungere una dipendenza alla grafica, devi aggiungere il Repository Maven di Google al tuo progetto. Consulta il Repository Maven di Google per ulteriori informazioni.

Aggiungi le dipendenze per gli artefatti necessari nel file build.gradle per l'app o il modulo:

Trendy

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

Per saperne di più sulle dipendenze, consulta Aggiungere dipendenze build.

Feedback

Il tuo feedback ci aiuta a migliorare Jetpack. Non esitare a contattarci in caso di nuovi problemi o idee per migliorare questa raccolta. Dai un'occhiata alle problemi esistenti in questa raccolta, prima di crearne uno nuovo. Puoi aggiungere il tuo voto a un problema esistente tramite facendo clic sul pulsante a forma di stella.

Crea un nuovo numero

Consulta la documentazione di Issue Tracker per ulteriori informazioni.

Nessuna nota di rilascio per questo elemento.

Graphics Shapes versione 1.0

Versione 1.0.0-rc01

24 luglio 2024

Vengono rilasciate le funzionalità androidx.graphics:graphics-shapes:1.0.0-rc01, androidx.graphics:graphics-shapes-android:1.0.0-rc01 e androidx.graphics:graphics-shapes-desktop:1.0.0-rc01. La versione 1.0.0-rc01 contiene questi commit.

Versione 1.0.0-beta01

1° maggio 2024

Vengono rilasciate le funzionalità androidx.graphics:graphics-shapes:1.0.0-beta01, androidx.graphics:graphics-shapes-android:1.0.0-beta01 e androidx.graphics:graphics-shapes-desktop:1.0.0-beta01. La versione 1.0.0-beta01 contiene questi commit.

Modifiche alle API

  • Consenti la pre-rotazione delle forme in modo che inizi da un punto diverso. Questa modifica consente alle forme di pillStar di iniziare le curve da un punto non predefinito sul perimetro. Ciò può essere utile quando si anima il tratto del percorso della forma, per iniziare a disegnare da una posizione specifica sul contorno della forma. (Ifbb4d, b/324303807)
  • Aggiunte funzioni calculateBounds() a Morph, che sono parallele alle stesse funzioni su RoundedPolygon. (I8a3b6, b/325463575)

Versione 1.0.0-alpha05

7 febbraio 2024

Vengono rilasciate le funzionalità androidx.graphics:graphics-shapes:1.0.0-alpha05, androidx.graphics:graphics-shapes-android:1.0.0-alpha05 e androidx.graphics:graphics-shapes-desktop:1.0.0-alpha05. La versione 1.0.0-alpha05 contiene questi commit.

Nuove funzionalità

  • La libreria ora offre nuove funzioni pill() e pillStar() per creare facilmente queste forme arrotondate/a stella. Esistono anche nuove API per calcolare i limiti esatti richiesti per una forma (i limiti precedenti erano solo una stima basata sui punti di controllo e di ancoraggio della curva di Bezier sottostanti), nonché sui limiti massimi possibili, che possono essere utili per determinare le dimensioni del container che la contiene se verrà ruotato all'interno del contenitore. (I71827)

Modifiche alle API

  • Ora ci sono altre opzioni per il recupero dei limiti esatti e massimi. (I6d49f, b/317286450)

Correzioni di bug

  • Occasionalmente si verificavano artefatti di rendering durante il disegno di queste forme come percorsi tratti, a causa di un problema di rendering di basso livello relativo a curve di lunghezza zero. Questo bug è stato risolto eliminando tutte le curve a lunghezza zero (di cui le forme non hanno bisogno, risparmiando così anche sull'overhead dei percorsi prodotti dalle forme).

Versione 1.0.0-alpha04

13 dicembre 2023

Vengono rilasciate le funzionalità androidx.graphics:graphics-shapes:1.0.0-alpha04, androidx.graphics:graphics-shapes-android:1.0.0-alpha04 e androidx.graphics:graphics-shapes-desktop:1.0.0-alpha04. La versione 1.0.0-alpha04 contiene questi commit.

Nuove funzionalità

  • Questa release contiene diverse modifiche all'API, oltre a correzioni di bug.
  • Molte delle modifiche all'API rendono la libreria Shapes compatibile con KMP. In questo modo è più facile chiamare da un codice non Android (ad esempio un codice Compose indipendente da Android). Ad esempio, nell'API non esistono tipi di Android, come i precedenti tipi PointF, Matrix e Path.
  • Sono state inoltre apportate diverse modifiche alle API e all'implementazione per motivi legati alle prestazioni, in particolare per ridurre al minimo l'allocazione (e la raccolta degli oggetti). Ad esempio, il passaggio da PointF a parametri in virgola mobile separati evita l'allocazione di molte strutture PointF temporanee per contenere quei vertici.

Modifiche alle API

  • Morph.asMutableCubics sostituito con una funzione da eseguire l'iterazione su MutableCubics. Interfaccia funzionale di PointTransformer modificata. Ora prende le coordinate x e y di un Point e restituisce un valore TransformedResult (costruito con le coordinate x e y trasformate) (I6719e)
  • È stato rimosso il costruttore Cubic pubblico e lo ha reso una funzione di fabbrica. (I409ce)
  • Aggiunta di API di trasformazione e disegno specifiche per Android (I079f6, b/292289543)
  • Elimina le dipendenze di Android (Iadc1c, b/292289543)
  • Ora i nomi delle proprietà di ancoraggio e controllo sono più appropriati (If13bd, b/294562941)
  • Parametri PointF cambiati in Float coppie (Id4705, b/276466399, b/290254314)
  • Ora progress viene passato direttamente a Morph comandi di disegno (Icdca2)

Correzioni di bug

  • È stato corretto il bug durante la creazione di forme grandi. (I4fd66, b/313497325)

Versione 1.0.0-alpha03

7 giugno 2023

Viene rilasciato androidx.graphics:graphics-shapes:1.0.0-alpha03. La versione 1.0.0-alpha03 contiene questi commit.

Modifiche alle API

  • Nuova funzione RoundedPolygon.rectangle() aggiunta (I78e7e, b/280322189)
  • Le funzioni Stella e Cerchio sono ora in maiuscolo e richiamate tramite l'oggetto companion di RoundedPolygon: ad esempio, RoundedPolygon.star(...)(I14735)

Correzioni di bug

  • È stato corretto il bug relativo allo smoothing (Ibf894)
  • È stato corretto un bug che si è verificato quando la forma di inizio e fine erano uguali. Distribuisci meglio lo spazio disponibile sul lato per i tagli, usando prima lo spazio disponibile per l'arrotondamento, poi per levigare se è rimasto spazio. (Ibd320, b/277936300)

Versione 1.0.0-alpha02

19 aprile 2023

Viene rilasciato androidx.graphics:graphics-shapes:1.0.0-alpha02. La versione 1.0.0-alpha02 contiene questi commit.

Modifiche alle API

  • La superclasse Polygon è stata unita alla sua sottoclasse RoundedPolygon; tutti i poligoni ora sono [facoltativamente] arrotondati.
  • La funzione Stella (che restituisce ancora un RoundedPolygon, come prima) ora prende un valore innerRadius, invece del parametro innerRadiusRatio precedente. Questo valore è nelle stesse unità del parametro raggio esistente, il che rende le cose più semplici e coerenti. Inoltre, il parametro numOuterVertices è stato rinominato in numVerticesPerRadius per chiarire che lo stesso numero viene applicato sia ai raggi interni che a quelli esterni.
  • In precedenza, si documentava che CornerRounding.radius era relativo alle dimensioni del poligono, ma era (e dovrebbe essere) un valore assoluto, non relativo. I documenti sono stati aggiornati ed è stata corretta l'annotazione che limitava il limite a un valore massimo di 1,0.

Versione 1.0.0-alpha01

5 aprile 2023

Graphics-Shapes è una nuova libreria che consente di creare e visualizzare con facilità forme poligonali arrotondate e il morphing semplice e automatico (animazione) tra forme diverse.

Viene rilasciato androidx.graphics:graphics-shapes:1.0.0-alpha01. Questa versione è stata rilasciata da un ramo interno.

Nuove funzionalità

  • Utilizza l'API Polygon per creare poligoni regolari e a stella con il numero desiderato di vertici.
  • Utilizza i parametri facoltativi CornerRounding per specificare il raggio di arrotondamento e i parametri di smussamento per gli angoli, generando forme poligonali con angoli arrotondati.
  • Usa la nuova API Morph(Polygon, Polygon) per calcolare automaticamente una forma "morph" il cui avanzamento può essere impostato da 0 a 1 per animarsi tra le forme iniziali e finali. Anima i progressi nel tempo, disegnando il risultato su ogni frame, per creare un'animazione fluida tra queste nuove forme arrotondate.

Graphics Path versione 1.0

Versione 1.0.1

1° maggio 2024

Viene rilasciato androidx.graphics:graphics-path:1.0.1. La versione 1.0.1 contiene questi commit.

Correzioni di bug

  • Miglioramenti ai flag del compilatore.

Versione 1.0.0

6 marzo 2024

Viene rilasciato androidx.graphics:graphics-path:1.0.0.

Versione 1.0.0-rc01

21 febbraio 2024

Viene rilasciato androidx.graphics:graphics-path:1.0.0-rc01. La versione 1.0.0-rc01 contiene questi commit.

Correzioni di bug

  • Migliora le prestazioni di PathIterator sull'API < 34 (ID4629)

Versione 1.0.0-beta02

10 gennaio 2024

Le modifiche in questa release riguardavano la riduzione delle dimensioni della libreria, che era più grande del necessario in base alle ipotesi fatte dal codice nativo.

Viene rilasciato androidx.graphics:graphics-path:1.0.0-beta02. La versione 1.0.0-beta02 contiene questi commit.

Correzioni di bug

  • Ha ridotto le dimensioni di libandroidx.graphics.path.so del 96%. (I71397)
  • Riduci le dimensioni di libandroidx.graphics.path.so del 5%. (I2da7c).
  • I componenti nativi di androidx.graphics:graphics-path sono stati ridotti del 43%. (I8e40d).

Versione 1.0.0-beta01

29 novembre 2023

Viene rilasciato androidx.graphics:graphics-path:1.0.0-beta01. La versione 1.0.0-beta01 contiene questi commit.

Modifiche alle API

  • Sono stati rimossi gli utilizzi dell'API isAtLeastU() sperimentale (Ie9117, b/289269026)

Correzioni di bug

  • Varie correzioni e miglioramenti delle prestazioni, incluso il modo in cui la libreria gestisce le coniche.

Versione 1.0.0-alpha02

7 giugno 2023

Viene rilasciato androidx.graphics:graphics-path:1.0.0-alpha02. Questa versione è sviluppata in un ramo interno.

Nuove funzionalità

  • È stato risolto il problema relativo al controllo della versione della piattaforma interna che causava problemi durante l'esecuzione sulle anteprime di Android 14 (il controllo della versione non andava a buon fine, ma il meccanismo per svolgere operazioni con le release precedenti non funziona correttamente in particolare su Android 14).

Versione 1.0.0-alpha01

22 marzo 2023

Viene rilasciato androidx.graphics:graphics-path:1.0.0-alpha01. La versione 1.0.0-alpha01 contiene questi commit.

Nuove funzionalità

  • Questa nuova libreria consente di eseguire query sui dati dei percorsi tramite la nuova API PathIterator. Utilizzando questa API, i chiamanti possono eseguire l'iterazione attraverso tutti i segmenti di un oggetto Path per determinare l'operazione e i dati relativi a quei segmenti.
  • La libreria utilizza API simili introdotte nell'anteprima di Android 14, ma questa versione dell'API AndroidX funziona anche su versioni precedenti all'API 21.

Graphics Core versione 1.0

Versione 1.0.0

29 maggio 2024

Viene rilasciato androidx.graphics:graphics-core:1.0.0. La versione 1.0.0 contiene questi commit.

Funzionalità principali di 1.0.0

  • Versione stabile ufficiale della libreria grafica con core. Include correzioni di bug minori e miglioramenti delle prestazioni rispetto alla versione 1.0.0-rc01

Versione 1.0.0-rc01

17 aprile 2024

Viene rilasciato androidx.graphics:graphics-core:1.0.0-rc01. Questa versione è sviluppata in un ramo interno.

Correzioni di bug

  • È stato risolto il problema che causava una potenziale doppia chiusura dei descrittori dei file con CanvasBufferedRendererAPI con determinati dispositivi Android con Android 14.
  • È stato risolto il problema per cui FrameBuffer non eliminava correttamente le istanze framebuffer.

Versione 1.0.0-beta01

13 dicembre 2023

Viene rilasciato androidx.graphics:graphics-core:1.0.0-beta01. La versione 1.0.0-beta01 contiene questi commit.

Nuove funzionalità

  • È stata introdotta una nuova API LowLatencyCanvasView per supportare il rendering a bassa latenza con le API grafiche 2D di Android (Canvas + Paint) all'interno della gerarchia di visualizzazione.
  • È stata introdotta l'API CanvasBufferedRenderer per supportare il rendering dei Canvas con accelerazione hardware in un HardwareBuffer. Può essere utilizzato per disegnare una parte di un'interfaccia utente in un buffer che può essere convertito in una bitmap utilizzando l'API Bitmap.wrapHardwareBuffer.

Modifiche alle API

  • È stata aggiornata l'API CanvasBufferRenderer#releaseBuffer in modo che abbia un parametro di fence facoltativo. Documentazione aggiornata per descrivere quando viene restituito RenderResult#fence. (If1ea7).
  • Aggiungi il metodo draw a RenderRequest per supportare l'utilizzo delle coroutine per pianificare le richieste di estrazione. Il metodo di disegno precedente che utilizzava un esecutore è stato rinominato in drawAsync. È stato eseguito il refactoring del metodo isClosed() in una proprietà. (I5bff6)
  • Parametro formato del buffer esposto a CanvasFrontBufferRenderer per mapparlo direttamente a CanvasBufferedRenderer.Builder#setBufferFormat (I0f272)
  • È stata creata l'API CanvasBufferedRenderer per gestire il rendering dei canvas con accelerazione hardware in un HardwareBuffer. Ciò fornisce un'implementazione con backporting in Android Q insieme alla configurazione di una profondità swapchain di HardwareBuffers. La configurazione di ColorSpace è ancora limitata ad Android U e versioni successive, ma l'implementazione compatibile fornisce un comportamento autonomo sugli sviluppatori per conto tuo. (I9b1d8)
  • Aggiungi setFrameRate/clearFrameRate API a SurfaceControlCompat.Transaction per controllare la frequenza frame insieme alla strategia di modifica per ottenere transizioni fluide o predefinite. (I6045c)
  • Abbassato il livello API richiesto per setDataSpace ad Android Q da Android T. (I59c34).
  • È stato aggiunto il callback onBufferReleased all'API GLFrameBufferRenderer per offrire ai consumatori l'opportunità di ripulire lo stato quando non viene più presentato un buffer (I8a4e2)
  • Crea LowLatencyCanvasView per supportare un semplice caso d'uso di rendering di contenuti con bassa latenza che vengono sincronizzati con il rendering della gerarchia di visualizzazione. Ciò riduce le complessità associate alla gestione di SurfaceView attraverso la gestione interna dell'istanza SurfaceView che viene tradotta rispettivamente off/on screen per il rendering sincronizzato e a bassa latenza. (I9253b)
  • Aggiunto il supporto della configurazione dello spazio colore all'API CanvasFrontBufferedRenderer. Callback multibuffer aggiornati per includere anche il SurfaceControl con buffer posteriore (I24bd9)

Versione 1.0.0-alpha05

6 settembre 2023

Viene rilasciato androidx.graphics:graphics-core:1.0.0-alpha05. La versione 1.0.0-alpha05 contiene questi commit.

Nuove funzionalità

  • È stata introdotta l'API GLFrameBufferRenderer. Fornisce una combinazione di dipendenze OpenGL, configurazione della catena di scambio, formati dei pixel e configurazione di SurfaceControl. (Ic775b)

Modifiche alle API

  • Sono stati aggiunti parametri di larghezza e altezza a varie API di callback alle dimensioni della barra verticale da SurfaceHolder#Callbacks. (I7f9fc)
  • È stata aggiunta una chiara API per cancellare sia lo strato anteriore che quello con buffer multiplo. (Ic1f95).
  • È stato aggiunto il supporto per configurare il tipo di buffer sottostante delle swapchain utilizzate all'interno di GLFrontBufferedRenderer. (I07a13)
  • Sono state aggiunte proprietà kotlin per i getter per GLFrameBufferRenderer, annotazione IntRange per il numero massimo di voci del buffer e annotazioni HardwareBufferFormart e HardwareBufferUsage rispettivamente per setFormat/setUsage. (Ief89e)
  • L'API setBuffer è stata aggiornata nelle transazioni SurfaceControl per fornire un periodo di rilascio. (Ice1bb)
  • Sono state aggiunte SurfaceControlCompat.Transaction API per configurare lo spazio dati e per impostare l'intervallo di luminosità esteso. (Ic378d)

Versione 1.0.0-alpha04

7 giugno 2023

Viene rilasciato androidx.graphics:graphics-core:1.0.0-alpha04. La versione 1.0.0-alpha04 contiene questi commit.

Nuove funzionalità

  • È stato introdotto CanvasFrontBufferedRenderer per supportare la grafica a bassa latenza sfruttando l'API android.graphics.Canvas insieme all'implementazione OpenGL esistente

Modifiche alle API

  • È stata aggiornata l'API SurfaceControlCompat.Transaction#setBuffer per consentire alle istanze HardwareBuffer con valore nullo di eseguire il mirroring dell'API della piattaforma corrispondente (I173d7)
  • Rinomina invece i metodi che fanno riferimento al rendering con doppio buffer in multi buffer, in quanto la swapchain di supporto potrebbe contenere più di 2 buffer. (I830d7)
  • Crea l'API CanvasFrontBufferedRenderer per consentire a 3ps di sfruttare un sistema di rendering con buffer frontale utilizzando l'API Canvas. (Ibfc29)

Correzioni di bug

  • È stato risolto il problema per cui GLFrontBufferedRenderer non visualizzava i contenuti dopo aver ripristinato l'attività corrispondente.
  • È stato risolto il problema per cui i contenuti con buffer anteriore venivano cancellati prematuramente.
  • È stato risolto il problema per cui SurfaceHolder.Callbacks non veniva rimosso dopo il rilascio delle API grafiche a bassa latenza.

Versione 1.0.0-alpha03

22 marzo 2023

Viene rilasciato androidx.graphics:graphics-core:1.0.0-alpha03. La versione 1.0.0-alpha03 contiene questi commit.

Modifiche alle API

  • È stata aggiornata l'implementazione del callback GLFrontBufferedRenderer per fornire un oggetto BufferInfo che contiene larghezza/altezza del buffer insieme a un identificatore del buffer del frame che può essere utilizzato per scegliere nuovamente il target della destinazione originale dopo il rendering su un buffer temporaneo intermedio. (I7fe20)
  • Creazione di SyncFence consolidata in metodo di fabbrica statico il giorno SyncFenceCompat.
  • È stato rimosso il metodo di compatibilità pubblica per eglDupNativeFenceFDANDROID in favore del metodo di fabbrica SyncFenceCompat per la creazione di SyncFence. Questo serve a garantire che tutte le piattaforme API ricevano l'implementazione corretta di SyncFence, indipendentemente dal livello API. (I849bb)
  • È stata aggiunta la documentazione per FrameBufferRenderer e SyncStrategy.
    • FrameBufferRenderer + FrameBuffer + FrameBufferPool spostati in androidx.graphics.opengl pacchetto
    • Spostamento di SyncStrategy in androidx.graphics.opengl pacchetto
    • RenderCallback#onDraw documenti aggiornati
    • Documentazione aggiornata di RenderCallback#obtainFrameBuffer che indica che l'implementatore dell'API è responsabile della chiamata al numero FrameBuffer.close
    • Aggiornamento di onDrawComplete per indicare che i consumatori sono responsabili dell'invio dei contenuti da mostrare
    • SyncFence interfacce/classi di compatibilità spostate nel pacchetto androidx.hardware per eseguire il mirroring del framework
    • L'API SyncFence è stata rinominata in SyncFenceV19 e resa privata per consolidare gli utilizzi in SyncFenceCompat, che sfrutta l'API SyncFence del framework ove possibile. (I5149c)
  • Metodi GLFrontBufferedRenderer#cancel e GLFrontBufferedRenderer#execute aggiunti. Il primo è utile negli scenari di rifiuto del palmo, in cui il rendering nel buffer anteriore deve essere annullato e nascondere il buffer anteriore. Quest'ultimo è utile negli scenari per manipolare gli oggetti nel thread GL senza dover pianificare un rendering. (If0b7f)
  • Aggiungi un'API per eseguire il rendering direttamente nello strato con doppio buffer. Ciò aiuta a eseguire il rendering di una scena dopo il curriculum, oltre a offrire ai consumatori l'opportunità di determinare selettivamente quando utilizzare il rendering con buffer frontale in modo dinamico in base alla scena desiderata da visualizzare. (Ied56c)
  • È stata aggiunta una nuova API a SurfaceControlCompat.Builder per supportare la configurazione dell'elemento SurfaceControl padre da un'altra istanza SurfaceControl in aggiunta al meccanismo esistente di un SurfaceView. (I1d1b6).
  • Altri tipi di output nulli per le funzioni nascoste deprecate (Ibf7b0)
  • È stata aggiunta la costante dell'estensione EGL_ANDROID_get_native_client_buffer per stabilire se il dispositivo Android supporta l'importazione di HardwareBuffer istanze in EGLClientBuffer oggetti utilizzabili come istanza EGLImage. (Iad767)
  • Aggiunta dell'annotazione @JvmDefaultWithCompatibility (I8f206)

Versione 1.0.0-alpha02

9 novembre 2022

Viene rilasciato androidx.graphics:graphics-core:1.0.0-alpha02. La versione 1.0.0-alpha02 contiene questi commit.

Modifiche alle API

  • È stata corretta l'annotazione RequiresApi mancante per addTransactionCommitListener, introdotta in Android S (I0a035)
  • Sono stati aggiornati i callback del buffer onDraw<Front/Double> per fornire una matrice di trasformazione che i consumatori possono passare ai propri Vertex Shader, oltre all'attuale larghezza/altezza del buffer. Gli utenti sono responsabili dell'utilizzo di questi parametri per la corretta rotazione preliminare del codice di rendering OpenGL. (I82f9e)

Correzioni di bug

  • Latenza grafica migliorata grazie alla pre-rotazione dei buffer prima di emettere transazioni con SurfaceControl.
  • È stato risolto il problema per cui i log degli errori mostravano l'errore 300d (EGL_BAD_SURFACE).
  • È stato risolto il problema per cui GLFrontBufferedRenderer non sarebbe stato valido dopo la ripresa dell'attività corrispondente in cui era utilizzato.
  • Maggiore supporto per emulatori e dispositivi ChromeOS.
  • È stato risolto il problema per cui lo strato con buffer anteriore poteva essere nascosto prematuramente.

Versione 1.0.0-alpha01

24 ottobre 2022

Viene rilasciato androidx.graphics:graphics-core:1.0.0-alpha01. La versione 1.0.0-alpha01 contiene questi commit.

Nuove funzionalità

  • Release iniziale della libreria AndroidX di base della grafica. Sono incluse le API per supportare casi d'uso a bassa latenza come l'input con lo stilo. Vengono inoltre introdotte alcune API helper per l'utilizzo di OpenGL.

Modifiche alle API

  • Introduce GLFrontBufferedRenderer per supportare il rendering frontale e con più buffer per ottenere output sia con bassa latenza sia con rendering di alta qualità.
  • Introduce l'API GLRenderer per facilitare il rendering OpenGL per vari provider di Surface come SurfaceView, TextureView e altri.