Personalizar diálogo de acción rápida para android
Estoy desarrollando una aplicación en la que tengo que mostrar el diálogo de acción rápida al hacer clic en un botón. He aquí un ejemplo de cómo quiero implementarlo.
- Cambiar el color del cursor editext en API 12
- Bordes rectangulares para Custom SeekBar
- Cómo personalizar la carta de vista previa de desplazamiento rápido
- Cómo hacer que el mensaje de tostadas personalizado tome toda la pantalla
- ¿Cómo crear un ListView cerrado (circular)?
Hasta ahora no pude imaginar cómo crear un diálogo de acción rápida personalizado. Pero he intentado usar una actividad y algo lo que estoy cerca de lo que tengo que lograr. Esto es lo que he hecho hasta ahora.
Al hacer clic en el botón estoy pasando la intención de la actividad:
if (v.getId() == R.id.points) { Toast.makeText(MainActivity.this, "Clicked on points", Toast.LENGTH_SHORT).show(); Intent i = new Intent(MainActivity.this, PointsActionMenu.class); startActivity(i); }
Y he utilizado styles.xml
para hacer la actividad transparente.
Estilos.xml
<style name="Theme.Transparent" parent="android:Theme"> <item name="android:windowIsTranslucent">true</item> <item name="android:windowBackground">@android:color/transparent</item> <item name="android:windowContentOverlay">@null</item> <item name="android:windowNoTitle">true</item> <item name="android:windowIsFloating">true</item> <item name="android:backgroundDimEnabled">false</item> </style>
La implementación de estas cosas que tengo esta interfaz de usuario en mi pantalla.
Ahora, tengo dos preguntas:
- He utilizado la actividad y diseñado un diseño para trabajar para mis necesidades. ¿Hay alguna manera fácil de implementar esto usando el diálogo de acción rápida. He ido a través de 2-3 ejemplos para eso, pero no pude personalizarlo de acuerdo a mi necesidad.
- Por lo que he implementado usando una actividad, se muestra en el centro de la pantalla, puedo cambiar el lugar predeterminado de la actividad a la esquina derecha, como se muestra en la imagen.
Cualquiera de las respuestas me puede ayudar.
Cualquier tipo de ayuda será apreciada por esto.
- Uso de Textview personalizado en estilo
- Diálogo de personalización extendiendo Dialog o AlertDialog
- Personalización de la funcionalidad de la pantalla de bloqueo de Android?
- Personalizar la lista de sugerencias de AutoCompletar vista de texto
- ¿Por qué los estilos de corte personalizado aparecen en gris en lugar del color especificado?
- Cómo personalizar cardview?
- Título personalizado de ActionBar como ImaveView en lugar de TextView
- ScrollBar en un listView ... personalizándolo.
Creo que he resuelto mi problema. Aquí es ahora lo que parece.
Integró el siguiente código para establecer su posición.
WindowManager.LayoutParams wmlp = this.getWindow().getAttributes(); wmlp.gravity = Gravity.TOP | Gravity.LEFT; wmlp.x = 80; // x position wmlp.y = 60; // y position
Es posible que desee considerar lo que sucede en diferentes dispositivos y tamaños de pantalla. Considere la posibilidad de escalar los píxeles a dp con esto:
int x = (int) TypedValue.applyDimension(TypedValue.COMPLEX_UNIT_DIP, 80, getResources().getDisplayMetrics()); int y = (int) TypedValue.applyDimension(TypedValue.COMPLEX_UNIT_DIP, 60, getResources().getDisplayMetrics());
EDITAR:
wmlp.x = (int) TypedValue.applyDimension(TypedValue.COMPLEX_UNIT_DIP, 80, getResources().getDisplayMetrics()); wmlp.y = (int) TypedValue.applyDimension(TypedValue.COMPLEX_UNIT_DIP, 60, getResources().getDisplayMetrics());
- El texto extensible no funciona en el fragmento de diálogo
- Límite máximo de visualización en la presentación de Android xml