Elevación del Lollipop en contorno cóncavo
Tengo una vista personalizada que muestra una forma de estrella mediante una ruta. Esta vista funciona como se esperaba, pero ahora me gustaría cambiarla a la nueva recomendación de Google Material.
Desafortunadamente la elevation
depende de un contorno convexo. Todavía no puedo encontrar una solución.
- Diseño de material control paso a paso
- Android El menú de acción personalizada de la barra de herramientas de diseño de material no está alineado correctamente
- ¿Cómo puedo usar los iconos de Diseño de material en XML en Android?
- Creación de un menú de diálogo emergente personalizado
- Creación de una aplicación para Android con targetSdkVersion de 25 y minSdkVersion 19
¿Hay alguna solución conocida o alguna otra solución creativa que alguno de ustedes conozca?
Este es mi camino cóncavo:
double outerSize = w / 2; double innerSize = w / 5; double delta = 2.0*Math.PI/5.0; double rotation = Math.toRadians(-90); double xpos = w/2.0; double ypos = h/2.0; mPath = new Path(); mPath.moveTo((float)(outerSize * Math.cos(delta + rotation) + xpos), (float)(outerSize * Math.sin(delta + rotation) + ypos)); for(int point= 0;point<6;point++) { mPath.lineTo((float) (innerSize * Math.cos(delta * (point + 0.5) + rotation) + xpos), (float) (innerSize * Math.sin(delta * (point + 0.5) + rotation) + ypos)); mPath.lineTo((float) (outerSize * Math.cos(delta * (point + 1.0) + rotation) + xpos), (float) (outerSize * Math.sin(delta * (point + 1.0) + rotation) + ypos)); } mPath.close();
He intentado este código, sin esperanzas, que funciona bien en convexas vistas.
@TargetApi(21) private class StarOutline extends ViewOutlineProvider { @Override public void getOutline(View view, Outline outline) { StartView r = (StartView) view; // i know here say setConvexPath not setConcavePath outline.setConvexPath(r.mPath); } }
Pero como era de esperar, estoy recibiendo una Excepción:
java.lang.IllegalArgumentException: path must be convex at android.graphics.Outline.setConvexPath(Outline.java:216)
¿Alguna idea de cómo lograr este objetivo?
- Android Material: El color de la barra de estado no cambiará
- Error: (2, 0) Plugin con id 'com.github.dcendents.android-maven' no encontrado
- Cambiar actionOverflowButtonStyle con appcompat v21
- Icono de navegación de la barra de herramientas nunca configurado
- Tema no aplicado con la biblioteca appcompat en algunos dispositivos Android 4.X
- ¿Cómo hacer el diálogo de diseño de material de pantalla completa?
- Cómo crear las pestañas de la barra de herramientas con ViewPager en el diseño del material
- Cambiar el relleno de TextView en TabLayout
- JavaPoet + Android Studio "addModifiers (Modifier) no se puede aplicar a Modificador"
- Google Play Services rompe la red GSM