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.

Lo que quiero implementar.

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. Alcanzado hasta aquí

Ahora, tengo dos preguntas:

  1. 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.
  2. 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.

Creo que he resuelto mi problema. Aquí es ahora lo que parece.

Lo que encontré

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()); 
  • Osmdroid. OnItemSingleTapUp no funciona para Drawable personalizado
  • Cómo personalizar el botón de opción de preferencia de lista
  • Tostada personalizada en la parte superior de la pantalla
  • Personalización del spinner de Actionbar
  • Cambiar la fuente PreferenceFragment a través de fuentes de activos
  • Cómo personalizar los elementos de la lista en un AlertDialog de Android
  • Cambiar el color de texto de ListView al hacer clic
  • Android ActionBar Personalizar Buscar Ver
  • Android: evita el truncamiento de texto en las sugerencias de SearchView?
  • ¿Cómo implementar la vista de pila personalizada en android?
  • Android: Crear un botón de alternancia con imagen y sin texto
  • FlipAndroid es un fan de Google para Android, Todo sobre Android Phones, Android Wear, Android Dev y Aplicaciones para Android Aplicaciones.