¿Cómo puedo cambiar el color de fondo de una ventana giratoria?
Estoy intentando fijar el color de fondo de una ventana giratoria pero todo que he intentado no trabajó correctamente.
Este es el control giratorio:
- Android PayPalActividad no en pantalla completa
- Problema despedir ventana emergente
- Cierre del Popup en Android
- Cambiar el fondo del mensaje de error de EditText
- ¿Cómo hacer una lista emergente como un hilandero sin el hilador en androide?
<Spinner android:id="@+id/myspinner" android:layout_width="fill_parent" android:layout_height="wrap_content" android:background="@null" android:drawSelectorOnTop="true" />
Cuando hago clic en él, muestra un popup con un fondo blanco, y quiero cambiar eso.
La línea xml que utilizo para poblar el popup es:
<RelativeLayout xmlns:android="http://schemas.android.com/apk/res/android" android:layout_width="wrap_content" android:layout_height="wrap_content" android:background="@drawable/list_selector" android:paddingBottom="@dimen/padding_medium" android:layout_marginBottom="@dimen/padding_medium" android:orientation="vertical"> .......... </RelativeLayout>
Y el fondo dibujable list_selector.xml:
<selector xmlns:android="http://schemas.android.com/apk/res/android"> <!-- Pressed --> <item android:state_pressed="true" android:drawable="@color/green" /> <!-- @drawable/tab_press --> <!-- Selected --> <item android:state_selected="true" android:drawable="@color/green" /> <!-- @drawable/tab_press --> </selector>
Agregar un estado predeterminado al xml anterior está bien, pero el control principal del hilandero muestra el elemento con ese color de fondo, y no quiero eso.
Otra cosa que he intentado es establecer el color de fondo de la aplicación a negro en styles.xml
<style name="AppTheme" parent="android:Theme.Light"> <item name="android:background">#000000</item> <item name="android:textColor">#FFFFFF</item> <item name="android:typeface">sans</item> </style>
Que anula el fondo emergente también, pero tiene efectos colaterales indeseables. ¿Hay alguna manera de lograr esto de una manera simple?
¡Gracias!
PS: Estoy usando API nivel 10 (2.3.3) y el atributo android:popupBackground
no existe.
- Detectar y manejar pop-ups en Webview y abrir url en una nueva pestaña o ventana
- ¿Puede PopupWindow de Android mostrar otro PopupWindow?
- Menú emergente en el clic de un botón en la barra de acción
- Cómo abrir la ventana emergente en EditText prensa larga en el estudio de Android
- Pequeño Popup para instrucciones, como los cuadrados
- Spinner popup color de fondo en Android 5.0
- Creación de menú emergente en android 2.3 GingerBread
- Cómo ocultar el popup de filtro en ListView en Android?
Utilice android: popupBackground = "@ drawable / Yourxmlfile.xml" en Su declaración de spinner de xml.
Por ejemplo
<Spinner android:id="@+id/spinner3" android:layout_width="fill_parent" android:layout_height="40dp" android:layout_gravity="center" android:layout_weight="50" android:background="@drawable/gradient_spinner" android:gravity="center" android:paddingLeft="40dp" android:popupBackground="@drawable/radialfront" >
Ninguna de las soluciones anteriores funcionó para mí.
La solución fue escribir en el adaptador pasado a la hiladora una implementación diferente en el método getDropDownView para mostrar un diseño diferente con colores personalizados:
@Override public View getView(int position, View convertView, ViewGroup parent) { View vista = convertView; // layout for spinner widget if (vista==null) { LayoutInflater inflater = actividad.getLayoutInflater(); vista = inflater.inflate(R.layout.fila_colores_spinner, null); } return vista; } @Override public View getDropDownView(int position, View convertView,ViewGroup parent) { View vista = convertView; //layout for spinner popup if (vista==null) { LayoutInflater inflater = actividad.getLayoutInflater(); vista = inflater.inflate(R.layout.fila_colores_spinner_popup, null); } return vista; }
Funciona muy bien !!
- Declare el diseño con la vista de texto con el color deseado (y otros atributos que desea cambiar)
- El id del textView debe ser text1 (porque este es el id que se declara en el layout por defecto en R.android para tu spinner)
- Dé este diseño en su adaptador giratorio
por ejemplo:
-
In res \ layout \ custom_spinner_item.xml poner esto:
TextView xmlns:android="http://schemas.android.com/apk/res/android" android:id="@android:id/text1" android:layout_width="match_parent" android:layout_height="wrap_content" android:background="#B2B5B7" android:gravity="center_horizontal" android:textSize="20dp"
Entonces dé esta disposición al adaptador:
ArrayAdapter<String> adapter = new ArrayAdapter<String>( MyActivity.this, R.layout.custom_spinner_item, strings);
- Entonces dé este adaptador a su hilandero
<Spinner android:id="@+id/myspinner" android:layout_width="fill_parent" android:layout_height="wrap_content" android:background="@drawable/list_selector" android:drawSelectorOnTop="true" />
prueba esto..
- Android SDK Windows Error al ejecutar Android.bat
- ¿Cómo saber en BroadcastReceiver si la aplicación se está ejecutando en primer plano?