Pergunta

Estou apenas começando com o desenvolvimento do Android e vim do mundo JavaScript/HTML, então atualmente estou investigando as possibilidades do Android SDK.

A tela HTML 5 suporta operações compostas (ver aqui).

Isso é possível em uma tela do Android? Eu digitalizei a API da classe Canvas, mas não consegui encontrar nada útil. Preciso de pelo menos a operação composta "fonte" ou (se isso não for possível) "Fonte-Atop".

Foi útil?

Solução

A composição é tratada com desenho de um Canvas com um Paint que usa a PorterDuffXfermode.

Paint p=new Paint();
p.setXfermode(new PorterDuffXfermode(PorterDuff.Mode.DARKEN));
canvas.drawBitmap(bitmap, 0, 0, p);

Ver aqui para mais informações. Eu também consegui substituir onPaint Para que possamos aplicar essa composição a elementos que desenham os tempos de temas.

Outras dicas

Eu não procurei fazer esse tipo de operações antes, mas acho que há uma maneira de fazê -los usando o Ret forma. Você pode definir retângulos para marcar quais áreas devem ser atraídas para a tela, ou quais para tirar a imagem de origem e o Rect A classe possui alguns recursos de comparação embutidos. Por exemplo, para imitar uma fonte, você pode usar setIntersect(Rect boundingBoxOfSource, Rect boundingBoxOfDestination) Para fazer com que seu novo retângulo tenha apenas a área cruzada das duas imagens. Em seguida, você pode usar esse retângulo como um argumento em um dos comandos de draw da tela, dizendo para ele pegar apenas os pixels da imagem de origem que estão dentro desse retângulo. Em seguida, você controla o desenho no eixo z pela ordem em que os comandos de draw são executados.

Encontrei eu mesmo. O PorterDuffxfermode implementa todos esses modos compostos.

Licenciado em: CC-BY-SA com atribuição
Não afiliado a StackOverflow
scroll top