Pregunta

estoy empezando con el desarrollo de Android y vengo mundo JavaScript / HTML, así que estoy actualmente investigando las posibilidades del SDK de Android.

Las compatible con HTML 5 lienzo operaciones compuestos (véase el aquí ).

Es esto posible en un lienzo Android? Recorrí la API de la clase Canvas, pero no pude encontrar nada útil. Necesito por lo menos la operación de compuesto "fuente-in" o (si esto no es posible) "source-cima".

¿Fue útil?

Solución

Composición está a cargo de dibujo sobre un Canvas con un Paint que utiliza un PorterDuffXfermode.

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

aquí para obtener más información. También logré onPaint anulación de modo que podemos aplicar esta composición de elementos que atraen themeselves.

Otros consejos

No he mirado en hacer ese tipo de operaciones antes, pero creo que hay una manera de hacerlo utilizando la Rect forma. Se pueden definir rectángulos para marcar las áreas que deben elaborarse en el lienzo, o para sacar de la imagen de origen, y la clase Rect tiene alguna comparación características incorporadas. Por ejemplo para imitar una fuente-en, usted podría utilizar setIntersect(Rect boundingBoxOfSource, Rect boundingBoxOfDestination) para hacer su nuevo rectángulo tiene solamente la zona de intersección de las dos imágenes. A continuación, puede utilizar ese rectángulo como un argumento en uno de los comandos de dibujo de la tela, diciendo que sólo tomar los píxeles de la imagen de origen que están dentro de ese rectángulo. A continuación, controlar el dibujo en el eje Z por el orden en que se ejecutan los comandos de dibujo.

encontrado yo mismo. Los implementos PorterDuffXfermode todos estos modos de composición.

Licenciado bajo: CC-BY-SA con atribución
No afiliado a StackOverflow
scroll top