gráficos
Esta tabela lista todos os artefatos no grupo androidx.graphics
.
Artefato | Versão estável | Versão candidata a lançamento | Versão Beta | Versão Alfa |
---|---|---|---|---|
núcleo gráfico | 1.0.1 | - | - | - |
caminho-gráfico | 1.0.1 | - | - | - |
formas gráficas | 1.0.1 | - | - | - |
Declarar dependências
Para adicionar uma dependência a Graphics, é preciso adicionar o repositório Maven do Google ao seu projeto. Leia Repositório Maven do Google para mais informações.
Adicione as dependências dos artefatos necessários ao arquivo build.gradle
do
seu app ou módulo:
Groovy
dependencies { implementation "androidx.graphics:graphics-core:1.0.1" implementation "androidx.graphics:graphics-path:1.0.1" implementation "androidx.graphics:graphics-shapes:1.0.1" }
Kotlin
dependencies { implementation("androidx.graphics:graphics-core:1.0.1") implementation("androidx.graphics:graphics-path:1.0.1") implementation("androidx.graphics:graphics-shapes:1.0.1") }
Para mais informações sobre dependências, consulte Adicionar dependências de build.
Feedback
Seu feedback ajuda a melhorar o Jetpack. Avise se você descobrir novos problemas ou tiver ideias para melhorar esta biblioteca. Consulte os problemas conhecidos nesta biblioteca antes de criar um novo. Adicione seu voto a um problema clicando no botão de estrela.
Consulte a documentação do Issue Tracker para saber mais.
Não há notas de versão para este artefato.
Graphics Shapes versão 1.0
Versão 1.0.0
21 de agosto de 2024
Lançamento de androidx.graphics:graphics-shapes:1.0.0
, androidx.graphics:graphics-shapes-android:1.0.0
e androidx.graphics:graphics-shapes-desktop:1.0.0
. A versão 1.0.0 contém estas confirmações.
Versão 1.0.0-rc01
24 de julho de 2024
Lançamento de 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
. A versão 1.0.0-rc01 contém estas confirmações.
Versão 1.0.0-beta01
1o de maio de 2024
Lançamento de 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
. A versão 1.0.0-beta01 contém estas confirmações.
Mudanças na API
- Permita que as formas sejam pré-giradas para começar em um ponto diferente. Essa mudança permite que as formas
pillStar
iniciem as curvas de um ponto não padrão no perímetro. Isso pode ser útil ao animar o traço do caminho da forma para começar a desenhar a partir de um local específico no contorno da forma. (Ifbb4d, b/324303807). - Foram adicionadas funções
calculateBounds()
ao Morph, que paralelas às mesmas funções emRoundedPolygon
(I8a3b6, b/325463575).
Versão 1.0.0-alpha05
7 de fevereiro de 2024
Lançamento de 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
. A versão 1.0.0-alpha05 contém estas confirmações.
Novos recursos
- A biblioteca agora oferece novas funções
pill()
epillStar()
para facilitar a criação dessas formas arredondadas/com estrela. Há também novas APIs para calcular os limites exatos necessários para uma forma (os limites anteriores eram apenas uma estimativa baseada na âncora da curva de Bézier e nos pontos de controle), assim como os limites máximos possíveis, que podem ser úteis para determinar o tamanho do contêiner se ele for girado dentro desse contêiner. (I71827).
Mudanças na API
- Agora, há mais opções para recuperar limites exatos e máximos. (I6d49f, b/317286450).
Correções de bugs
- Houve artefatos de renderização ocasionais ao desenhar essas formas como caminhos traçados, devido a um problema de renderização de baixo nível relacionado a curvas de comprimento zero. Esse bug foi corrigido ao eliminar todas as curvas de comprimento zero, que as formas não precisam, o que também reduz a sobrecarga dos caminhos produzidos pelas formas.
Versão 1.0.0-alpha04
13 de dezembro de 2023
Lançamento de 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
. A versão 1.0.0-alpha04 contém estas confirmações.
Novos recursos
- Essa versão contém várias mudanças na API, bem como correções de bugs.
- Muitas das mudanças da API tornam a biblioteca Shapes compatível com o KMP. Isso facilita chamadas de códigos que não são do Android (como códigos do Compose independentes do Android). Por exemplo, não há tipos de Android na API, como os tipos anteriores PointF, Matrix e Path.
- Também foram feitas várias mudanças nas APIs e na implementação por motivos de desempenho, especificamente para minimizar a alocação (e coleta) de objetos. Por exemplo, o movimento de PointF para parâmetros Float separados evita alocar muitas estruturas PointF temporárias para manter esses vértices.
Mudanças na API
Morph.asMutableCubics
foi substituído por uma função para iterar noMutableCubics
. Mudança da interface funcionalPointTransformer
. Agora, ela usa as coordenadas x e y de umPoint
e retorna umTransformedResult
, que é construído com as coordenadas x e y transformadas (I6719e).- Remoção do construtor público
Cubic
e o transformou em uma função de fábrica. (I409ce). - Adição de APIs de transformação e desenho específicas do Android (I079f6, b/292289543).
- Elimine as dependências do Android (Iadc1c, b/292289543).
- Nomes de propriedades de âncora e controle são mais sensíveis agora (If13bd, b/294562941).
- Mudança dos parâmetros
PointF
para paresFloat
(Id4705, b/276466399, b/290254314). - O
progress
agora é transmitido diretamente para os comandos de desenho doMorph
(Icdca2).
Correções de bugs
- Correção do bug na criação de formas grandes. (I4fd66, b/313497325).
Versão 1.0.0-alpha03
7 de junho de 2023
Lançamento de androidx.graphics:graphics-shapes:1.0.0-alpha03
. A versão 1.0.0-alpha03 contém estas confirmações.
Mudanças na API
- A nova função
RoundedPolygon.rectangle()
foi adicionada (I78e7e, b/280322189). - As funções Star e Circle agora ficam sem letra maiúscula e são chamadas pelo objeto complementar de
RoundedPolygon
, por exemplo,RoundedPolygon.star(...)
(I14735).
Correções de bugs
- Correção do bug na suavização (Ibf894).
- Correção de um bug que ocorria quando as formas inicial e final eram as mesmas. Distribua melhor o espaço disponível ao lado para cortes, usando primeiro o espaço disponível para arredondamento e depois para suavização se houver espaço disponível. (Ibd320, b/277936300).
Versão 1.0.0-alpha02
19 de abril de 2023
Lançamento de androidx.graphics:graphics-shapes:1.0.0-alpha02
. A versão 1.0.0-alpha02 contém estas confirmações.
Mudanças na API
- A superclasse Polygon foi mesclada com a subclasse,
RoundedPolygon
. todos os polígonos agora são, opcionalmente, polígonos arredondados. - A função Star, que ainda retorna um
RoundedPolygon
, como antes, agora usa um valorinnerRadius
, em vez do parâmetroinnerRadiusRatio
anterior. Ele tem as mesmas unidades que o parâmetro Root existente, o que torna as coisas mais simples e consistentes. Além disso, o parâmetronumOuterVertices
foi renomeado comonumVerticesPerRadius
para esclarecer que o mesmo número é aplicado aos raios interno e externo. - Anteriormente,
CornerRounding.radius
foi documentado como sendo relativo ao tamanho do polígono, mas era (e deveria ser) um valor absoluto, não relativo. Os documentos foram atualizados, e a anotação que os limitava a um valor máximo de 1,0 foi corrigida.
Versão 1.0.0-alpha01
5 de abril de 2023
Graphics-Shapes é uma nova biblioteca que permite fácil criação e renderização de formas poligonais arredondadas, bem como transformação simples e automática (animação) entre diferentes formas.
Lançamento de androidx.graphics:graphics-shapes:1.0.0-alpha01
. Esta versão foi lançada de uma ramificação interna.
Novos recursos
- Use a API Polygon para criar polígonos regulares e em estrela com o número desejado de vértices.
- Use parâmetros
CornerRounding
opcionais para especificar o raio de arredondamento e os parâmetros de suavização dos cantos, resultando em formas poligonais com cantos arredondados. - Use a nova API
Morph(Polygon, Polygon)
para calcular automaticamente uma forma de transformação cujo progresso pode ser definido de 0 a 1 para animar entre as formas inicial e final. Anime o progresso ao longo do tempo, mostrando o resultado em cada frame, para criar uma animação suave entre essas novas formas arredondadas.
Graphics Path versão 1.0
Versão 1.0.1
1o de maio de 2024
Lançamento de androidx.graphics:graphics-path:1.0.1
. A versão 1.0.1 contém estas confirmações.
Correções de bugs
- Melhorias nas sinalizações do compilador.
Versão 1.0.0
6 de março de 2024
Lançamento de androidx.graphics:graphics-path:1.0.0
.
Versão 1.0.0-rc01
21 de fevereiro de 2024
Lançamento de androidx.graphics:graphics-path:1.0.0-rc01
. A versão 1.0.0-rc01 contém estas confirmações.
Correções de bugs
- Melhoria no desempenho de PathIterator na API < 34 (Id4629).
Versão 1.0.0-beta02
10 de janeiro de 2024
As mudanças nesta versão foram relacionadas à redução do tamanho da biblioteca, que era maior do que o necessário devido às suposições feitas pelo código nativo.
Lançamento de androidx.graphics:graphics-path:1.0.0-beta02
. A versão 1.0.0-beta02 contém estas confirmações.
Correções de bugs
- O tamanho de
libandroidx.graphics.path.so
foi reduzido em 96%. (I71397). - Reduza o tamanho de
libandroidx.graphics.path.so
em 5%. (I2da7c). - Redução dos componentes nativos de
androidx.graphics:graphics-path
em 43%. (I8e40d).
Versão 1.0.0-beta01
29 de novembro de 2023
Lançamento de androidx.graphics:graphics-path:1.0.0-beta01
. A versão 1.0.0-beta01 contém estas confirmações.
Mudanças na API
- Remoção dos usos da API experimental
isAtLeastU()
(Ie9117, b/289269026).
Correções de bugs
- Várias correções e melhorias de desempenho, incluindo a forma como a biblioteca lida com cônicas.
Versão 1.0.0-alpha02
7 de junho de 2023
Lançamento de androidx.graphics:graphics-path:1.0.0-alpha02
. Essa versão é desenvolvida em uma ramificação interna.
Novos recursos
- Foi corrigido um problema com a verificação de versão interna da plataforma que causava problemas ao executar em visualizações do Android 14. A verificação de versão falhava, mas o mecanismo para fazer coisas em versões anteriores não funciona corretamente no Android 14 em particular.
Versão 1.0.0-alpha01
22 de março de 2023
Lançamento de androidx.graphics:graphics-path:1.0.0-alpha01
. A versão 1.0.0-alpha01 contém estas confirmações.
Novos recursos
- Essa nova biblioteca permite consultar dados de caminho usando a nova API
PathIterator
. Usando essa API, os autores da chamada podem iterar em todos os segmentos de um objeto Path para determinar a operação e os dados desses segmentos. - A biblioteca usa APIs semelhantes introduzidas na versão de pré-lançamento do Android 14, mas essa versão AndroidX da API também funciona em versões anteriores à API 21.
Graphics Core versão 1.0
Versão 1.0.1
4 de setembro de 2024
Lançamento de androidx.graphics:graphics-core:1.0.1
. A versão 1.0.1 contém estas confirmações.
Correções de bugs
- Correção do problema em que os recursos de memória não eram liberados de vez em quando.
Versão 1.0.0
29 de maio de 2024
Lançamento de androidx.graphics:graphics-core:1.0.0
. A versão 1.0.0 contém estas confirmações.
Principais recursos da versão 1.0.0
- Versão estável oficial da biblioteca Graphics-Core. Inclui pequenas correções de bugs e melhorias no desempenho da versão 1.0.0-rc01
Versão 1.0.0-rc01
17 de abril de 2024
Lançamento de androidx.graphics:graphics-core:1.0.0-rc01
. Essa versão é desenvolvida em uma ramificação interna.
Correções de bugs
- Correção do problema que causava o possível fechamento duplo de descritores de arquivo com o
CanvasBufferedRendererAPI
em alguns dispositivos com o Android 14. - Correção do problema em que
FrameBuffer
não excluía corretamente as instâncias de framebuffer.
Versão 1.0.0-beta01
13 de dezembro de 2023
Lançamento de androidx.graphics:graphics-core:1.0.0-beta01
. A versão 1.0.0-beta01 contém estas confirmações.
Novos recursos
- Introdução de uma nova API
LowLatencyCanvasView
para oferecer suporte à renderização de baixa latência com as APIs gráficas 2D do Android (Canvas + Paint) na hierarquia de visualização. - A API
CanvasBufferedRenderer
foi introduzida para oferecer suporte à renderização de tela acelerada por hardware em umaHardwareBuffer
. Isso pode ser usado para desenhar uma parte da interface do usuário em um buffer que pode ser convertido em um bitmap usando a APIBitmap.wrapHardwareBuffer
.
Mudanças na API
- A API
CanvasBufferRenderer#releaseBuffer
foi atualizada para ter um parâmetro de limite opcional. Atualizamos a documentação para descrever quandoRenderResult#fence
é retornado. (If1ea7). - O método
draw
foi adicionado aoRenderRequest
para oferecer suporte ao uso de corrotinas para programar solicitações de desenho. O método de desenho anterior que consumia um executor foi renomeado comodrawAsync
. O métodoisClosed()
foi refatorado para uma propriedade. (I5bff6). - Parâmetro de formato de buffer exposto para
CanvasFrontBufferRenderer
, para mapear diretamente paraCanvasBufferedRenderer.Builder#setBufferFormat
(I0f272). - Criação da API
CanvasBufferedRenderer
para processar a renderização de tela acelerada por hardware em umaHardwareBuffer
. Isso fornece uma implementação de backport para o Android Q, além da configuração de uma profundidade de cadeia de troca deHardwareBuffers
. A configuraçãoColorSpace
ainda está limitada ao Android U e versões mais recentes. No entanto, a implementação de compatibilidade fornece comportamento de ambiente autônomo nos nome de usuário. (I9b1d8). - As APIs
setFrameRate
/clearFrameRate
foram adicionadas aoSurfaceControlCompat.Transaction
para controlar o frame rate com a estratégia de mudança e possibilitar transições perfeitas ou padrão. (I6045c). - O nível da API necessário do
setDataSpace
para o Android Q foi reduzido do Android T. (I59c34). - O callback
onBufferReleased
foi adicionado à APIGLFrameBufferRenderer
para oferecer aos consumidores a oportunidade de limpar o estado quando um buffer não estiver mais sendo apresentado (I8a4e2). - Crie
LowLatencyCanvasView
para oferecer suporte a um caso de uso simples de renderização de conteúdo com baixa latência, que é sincronizado com a renderização da hierarquia de visualização. Isso reduz as complexidades associadas ao gerenciamento doSurfaceView
, gerenciando internamente a instânciaSurfaceView
que é traduzida fora/na tela para renderização sincronizada e de baixa latência, respectivamente. (I9253b). - Foi adicionado suporte à configuração de espaço de cores da API
CanvasFrontBufferedRenderer
. Atualização dos callbacks com vários buffers para incluir também oSurfaceControl
com buffer traseiro (I24bd9).
Versão 1.0.0-alpha05
6 de setembro de 2023
Lançamento de androidx.graphics:graphics-core:1.0.0-alpha05
. A versão 1.0.0-alpha05 contém estas confirmações.
Novos recursos
- Introdução da API
GLFrameBufferRenderer
. Isso fornece uma combinação de dependências OpenGL, configuração de cadeia de troca, formatos de pixel e configuração deSurfaceControl
. (Ic775b).
Mudanças na API
- Foram adicionados parâmetros de largura + altura a várias APIs de callback para dimensões de barra vertical a partir de
SurfaceHolder#Callbacks
. (I7f9fc). - Foi adicionada uma API clara para limpar as camadas frontal e com vários buffers. (Ic1f95).
- Foi adicionado suporte à configuração do tipo de buffer das cadeias de troca usadas em
GLFrontBufferedRenderer
(I07a13). - Foram adicionadas propriedades Kotlin para getters em
GLFrameBufferRenderer
, anotaçãoIntRange
para entradas máximas de buffer e anotaçõesHardwareBufferFormart
eHardwareBufferUsage
parasetFormat
/setUsage
, respectivamente. (Ief89e). - A API
setBuffer
foi atualizada em transaçõesSurfaceControl
para fornecer um limite de lançamento. (Ice1bb). - Foram adicionadas APIs
SurfaceControlCompat.Transaction
para configurar o espaço de dados e definir o intervalo de brilho estendido. (Ic378d).
Versão 1.0.0-alpha04
7 de junho de 2023
Lançamento de androidx.graphics:graphics-core:1.0.0-alpha04
. A versão 1.0.0-alpha04 contém estas confirmações.
Novos recursos
- O
CanvasFrontBufferedRenderer
foi introduzido para oferecer suporte a gráficos de baixa latência, aproveitando a APIandroid.graphics.Canvas
com a implementação do OpenGL existente.
Mudanças na API
- A API
SurfaceControlCompat.Transaction#setBuffer
foi atualizada para permitir que instânciasHardwareBuffer
anuláveis espelhem a API de plataforma correspondente (I173d7). - Renomeação de métodos que se referem à renderização em buffer duplo para buffer múltiplo, já que a cadeia de troca de apoio pode conter mais de dois buffers. (I830d7).
- Crie a API
CanvasFrontBufferedRenderer
para permitir que terceiros usem um sistema de renderização em buffer frontal usando a API Canvas. (Ibfc29).
Correções de bugs
- Correção do problema em que
GLFrontBufferedRenderer
não renderizava conteúdo depois de retomar a atividade correspondente - Corrigimos o problema em que o conteúdo em buffer frontal era apagado prematuramente.
- Correção do problema em que
SurfaceHolder.Callbacks
não era removido após o lançamento de APIs gráficas de baixa latência
Versão 1.0.0-alpha03
22 de março de 2023
Lançamento de androidx.graphics:graphics-core:1.0.0-alpha03
. A versão 1.0.0-alpha03 contém estas confirmações.
Mudanças na API
- A implementação do callback
GLFrontBufferedRenderer
foi atualizada para fornecer o objetoBufferInfo
que contém a largura/altura do buffer e um identificador de buffer de frame que pode ser usado para redirecionar o destino original após a renderização para um buffer de rascunho intermediário (I7fe20). - Consolidamos a criação de
SyncFence
no método estático de fábrica emSyncFenceCompat
. - Remoção do método de compatibilidade público de
eglDupNativeFenceFDANDROID
em favor do método de fábricaSyncFenceCompat
para a criação do SyncFence. Isso garante que todas as plataformas de API recebam a implementação correta deSyncFence
, independente do nível da API. (I849bb). - Foi adicionada a documentação para
FrameBufferRenderer
eSyncStrategy
.FrameBufferRenderer
+FrameBuffer
+FrameBufferPool
movidos para o pacoteandroidx.graphics.opengl
SyncStrategy
foi movido para o pacoteandroidx.graphics.opengl
- Documentos atualizados:
RenderCallback#onDraw
- Atualizamos a documentação de
RenderCallback#obtainFrameBuffer
, que o implementador da API é responsável por chamarFrameBuffer.close
. onDrawComplete
foi atualizado para indicar que os consumidores são responsáveis por enviar conteúdo para mostrar- As interfaces/classes de compatibilidade
SyncFence
foram movidas para o pacoteandroidx.hardware
para espelhar o framework. - A API
SyncFence
foi renomeada comoSyncFenceV19
e transformada em privada para consolidar os usos emSyncFenceCompat
, que aproveita a APISyncFence
do framework sempre que possível (I5149c).
- Os métodos
GLFrontBufferedRenderer#cancel
eGLFrontBufferedRenderer#execute
foram adicionados. O primeiro é útil em cenários de rejeição de palmas em que a renderização para o buffer frontal precisa ser cancelada e ocultar o buffer frontal. O último método é útil em cenários para manipular objetos na linha de execução GL sem precisar programar uma renderização. (If0b7f). - Foi adicionada uma API para renderizar diretamente na camada com buffer duplo. Isso ajuda a renderizar novamente uma cena após a retomada, além de dar aos consumidores a oportunidade de determinar seletivamente quando usar a renderização em buffer frontal dinamicamente com base na cena desejada para renderização. (Ied56c).
- Foi adicionada uma nova API ao
SurfaceControlCompat.Builder
para oferecer suporte à configuração doSurfaceControl
pai de outra instância daSurfaceControl
, além do mecanismo já existente de umSurfaceView
. (I1d1b6). - Mais nulidade do tipo de retorno das funções com uso oculto (Ibf7b0).
- A constante de extensão
EGL_ANDROID_get_native_client_buffer
foi adicionada para consultar se o dispositivo Android oferece suporte à importação de instâncias deHardwareBuffer
em objetosEGLClientBuffer
que podem ser consumidos como uma instânciaEGLImage
(Iad767). - A anotação
@JvmDefaultWithCompatibility
foi adicionada (I8f206).
Versão 1.0.0-alpha02
9 de novembro de 2022
Lançamento de androidx.graphics:graphics-core:1.0.0-alpha02
. A versão 1.0.0-alpha02 contém estas confirmações.
Mudanças na API
- Correção da anotação
RequiresApi
ausente noaddTransactionCommitListener
, que foi introduzida no Android S (I0a035). - Os callbacks de buffer
onDraw<Front/Double>
foram atualizados para fornecer uma matriz de transformação que os consumidores podem transmitir para os sombreadores de vértice, além da largura e altura do buffer atual. Os consumidores são responsáveis por usar esses parâmetros para pré-rotacionar da forma correta o código de renderização do OpenGL (I82f9e).
Correções de bugs
- Melhorada a latência gráfica ao pré-rotacionar os buffers antes de emitir transações
SurfaceControl
. - Corrigido o problema em que os registros de erros mostravam o erro 300d (EGL_BAD_SURFACE).
- Corrigimos o problema em que o
GLFrontBufferedRenderer
era considerado inválido após a retomada da atividade correspondente. - Aumento do suporte aos emuladores e dispositivos ChromeOS.
- Corrigimos o problema em que a camada de buffer frontal podia ser ocultada de forma prematura.
Versão 1.0.0-alpha01
24 de outubro de 2022
Lançamento de androidx.graphics:graphics-core:1.0.0-alpha01
. A versão 1.0.0-alpha01 contém estas confirmações.
Novos recursos
- Versão inicial da principal biblioteca de gráficos do AndroidX. Essa versão inclui APIs compatíveis com casos de uso de baixa latência, como entrada da stylus. Também introduz algumas APIs auxiliares para uso do OpenGL.
Mudanças na API
- Introdução de
GLFrontBufferedRenderer
para auxiliar na renderização frontal e com vários buffers a fim de alcançar saída de baixa latência e alta qualidade de renderização. - Introdução da API
GLRenderer
para auxiliar na renderização do OpenGL para vários provedores de Surface, comoSurfaceView
,TextureView
e outros.