Android: ¿puedo crear una vista / lienzo que no sea rectangular, pero por ejemplo, redondo?

Tengo una vista que es ronda y flotando por encima (-> en la dirección del eje z que sale de la pantalla) el contenido principal. Cuando alguien toca la pantalla, quiero que el contenido principal sea seleccionado o la vista que se cierne encima, cuando cubre la vista principal.

Hasta ahora eso funciona perfectamente. Tengo un artículo redondeado en un lienzo transparente. Lo que significa que puede ver todo lo que está fuera de ese círculo. Sin embargo, no se puede seleccionar, porque sigue siendo el lienzo flotando, sólo con una pintura transparente.

Ahora me pregunto, para resolver este problema, si es posible hacer la vista / lienzo en sí forma redonda?


Actualizar

He añadido una imagen para una mejor explicación de lo que intento lograr. texto alternativo

Por lo que sé, es imposible. He comprobado las fuentes de View.java en git.kernel.org y se basa en la clase Rect – rects define la posición, el tamaño, las regiones para invalidar etc ("La geometría de una vista es la de un rectángulo." Los comentarios en View.java)

En cuanto a la clase Canvas – normalmente se construye sobre Bitmap o GL. El mapa de bits es definitivamente un rectange (una matriz), así que el lienzo parece representar un rectange también. Si se utiliza GL se especifica una ventana (que también es un rectángulo).

Parece ser la forma más obvia de comprobar si las coordenadas pasadas a su método onTouch () le encajan en la región y devuelven false si no lo hacen. A continuación, el evento se pasará a la vista siguiente y debe procesar el evento.

Probablemente no es relevante para el asker original, pero para cualquiera que todavía esté buscando, parece que esto se agregará en L: https://developer.android.com/preview/material/views-shadows.html#clip . El método View.setClipToOutline permite recortar una vista a la forma de una rectangular rectangular, circular o redonda.

Debe especificar un selector de Android para evitar la imagen de desplazamiento predeterminada.

  • Android View.bringToFront () causa parpadeo
  • Android ampliablelistview grupo / padre imagen de fondo cambiar cuando se colapsan o expanden
  • Vista de visualización en la parte superior de la barra de acción
  • PivotX y PivotY en ScaleAnimation no tiene ningún efecto
  • Actualizar la posición de la vista debajo de otra vista en Android
  • View.setEnabled (false) no funciona muy bien en android
  • Botones en una vista personalizada cuando la vista personalizada se encuentra en una pestaña
  • Vistas duplicadas en Android durante el tiempo de ejecución
  • Eliminar márgenes en webView
  • Obtener la vista de RecyclerView por AdapterPosition
  • Cómo identificar una vista en el diseño?
  • FlipAndroid es un fan de Google para Android, Todo sobre Android Phones, Android Wear, Android Dev y Aplicaciones para Android Aplicaciones.