Cómo poner video en vista circular en android

No hay una solución lista para usar para esto.

Podemos usar la siguiente fórmula para encontrar el punto en la circunferencia del círculo en el ángulo dado θ y luego agregar la vista en esas posiciones, ajustar el margen izquierdo y superior para las vistas.

Para un círculo cuyo centro es (x, y) y cuyo radio es r , el punto en la circunferencia del círculo en el ángulo θ es (x + r * cos (θ), y + r * sin (θ)) . Según la cantidad de videos para mostrar, elija los valores theta que distribuirán uniformemente las vistas.

El punto que calculamos con esta fórmula debe ser el centro de VideoView que queremos mostrar.

Aquí hay un fragmento de código para esto. Este fragmento de ninguna manera está completo, pero debería darte una idea. Para simplificar, puede usar algunos valores codificados en los que he llamado a algunos métodos indefinidos personalizados para probar el resultado de este fragmento.

FrameLayout layout = // obtener referencia a FrameLayout
float centerX = layout.getWidth () / 2;
float centerY = layout.getHeight () / 2;

float angleForEvenDistribution = 360 / videosList.size (); / * Según la cantidad de videos, calcule θ * /
radio de flotación = 200f;
flotante theta = 0;

para (int videoIndex = 0; videoIndex <videosList.size (); videoIndex ++) {
float xPos = radio * (float) Math.cos (Math.toRadians (theta)) + centerX;
float yPos = radio * (float) Math.sin (Math.toRadians (theta)) + centerY;
Ver videoView = getVideoViewFor (videoList.get (videoIndex)); // Inflar vista desde xml o crear en tiempo de ejecución.
FrameLayout.LayoutParams lp = new FrameLayout.LayoutParams (getWidthForVideoViewBasedOnSizeOfCircleAndNumberOfVideoViews (), getHeightForVideoViewBasedOnSizeOfCircleAndNumberOfVideoViews ()); // Use algunas constantes para probar aquí y puede continuar y modificarlo para tener en cuenta el tamaño del círculo y la cantidad de videos.
lp.leftMargin = xPos – getWidthForVideoViewBasedOnSizeOfCircleAndNumberOfVideoViews () / 2;
lp.topMargin = yPos – getHeightForVideoViewBasedOnSizeOfCircleAndNumberOfVideoViews () / 2;
layout.addView (videoView, lp);
theta + = angleForEvenDistribution;
}

Hola.

La pregunta aquí es un poco confusa para mí. Pero hasta donde entiendo la pregunta, creo que estás deseando un modo de video 360 en Android. Un teléfono Android no puede capturar video 360 a partir de ahora, necesita cámaras especiales para hacer lo mismo. Pero si quieres 360 fotografías, puedes usar las fotos de Google para capturar algunas fotos increíbles.

Espero que esto te ayude