studio programacion para paleta móviles libro edición desarrollo curso colores aplicaciones android android-emulator

android - programacion - cambiar el color de fondo de la preferencia



paleta de colores android studio (7)

Especifique un diseño lineal con una vista de texto adjunta y especifique el color de fondo y adjunte este xml a la categoría de preferencia utilizando la propiedad de diseño.

<PreferenceCategory android:layout="@layout/preftitle" >

Donde el título previo es un xml que tiene un diseño lineal y una vista de texto adjunta.

Tengo un archivo de PreferenceCategory , xml y he definido todas las preferencias, lo llamo de la clase que extiende PreferenceActivity . No puedo establecer el fondo de mi pantalla de configuración, esta pantalla se muestra con la ayuda del archivo xml que se muestra a continuación. Por favor, vea que ya he definido el android:background="#041A37" , aún la pantalla sigue siendo el color predeterminado: negro.

public class MyPreferenceActivity extends PreferenceActivity { @Override public void onCreate(Bundle savedInstanceState) { Context mContext=super.getBaseContext(); super.onCreate(savedInstanceState); addPreferencesFromResource(R.layout.preference); //v.setBackgroundColor(Color.rgb(4, 26, 55)); } }

preferences.xml es

<?xml version="1.0" encoding="utf-8"?> <PreferenceScreen xmlns:android="http://schemas.android.com/apk/res/android" android:background="#041A37" > <PreferenceCategory> <com.dropcall.SeekBarPreference android:background="#041A37" android:defaultValue="5" android:key="@string/Interference_Delay" android:progressDrawable="@drawable/seekbardrawable" android:title="Seconds Delay until intereference" /> <com.dropcall.SeekBarPreference2 android:defaultValue="30" android:key="@string/Drop_Delay" android:progressDrawable="@drawable/seekbardrawable" android:title="Seconds delay until drop" /> <CheckBoxPreference android:background="@drawable/state_normal" android:defaultValue="true" android:key="@string/Drop_Option" android:title="Close after call drop" /> <CheckBoxPreference android:background="@drawable/state_normal" android:defaultValue="true" android:key="@string/Timer_Option" android:title="Start timers on launch" /> </PreferenceCategory> </PreferenceScreen>

Aunque he establecido android:background="#041A37" en todos los archivos, el fondo no se convierte en azul marino, ni en ningún otro color. Sigue siendo el color por defecto, negro. Cómo cambiar el color de fondo. Por favor, hágame saber cualquier sugerencia / consejo, si se hubiera enfrentado al mismo problema, hágame saber qué cambios realizó para establecer el color de fondo.


Esto funciono para mi

getListView().setBackgroundColor(Color.TRANSPARENT); getListView().setCacheColorHint(Color.TRANSPARENT); getListView().setBackgroundColor(Color.rgb(4, 26, 55));


O también puedes hacer dibujables como fondo:

getListView (). setBackgroundDrawable (getResources (). getDrawable (R.drawable.bluegradient));

Nota: setBackgroundDrawable() está en desuso. Utilice setBackground() lugar.

getListView (). setBackground (getResources (). getDrawable (R.drawable.bluegradient));


Otra solución alternativa en cuanto al color es que crea un tema para la actividad de preferencias y también coloca el color de fondo de las vistas de lista:

<style name="PrefsTheme" parent="@android:style/Theme.Black.NoTitleBar"> <item name="android:windowBackground">@color/prefs_bg</item> <item name="android:textColor">@color/text_color</item> <item name="android:listViewStyle">@style/listViewPrefs</item> </style> <style name="listViewPrefs" parent="@android:style/Widget.ListView"> <item name="android:background">@color/prefs_bg</item> <item name="android:cacheColorHint">@color/prefs_bg</item> </style>


Puede definir un tema y luego configurarlo para su actividad de preferencia en el manifiesto. Su tema puede definir un color de fondo o una imagen de fondo de ventana si así lo prefiere.

Manifiesto:

<activity android:label="@string/app_label" android:name=".client.PreferencesActivity" android:theme="@style/PreferencesTheme"> <intent-filter> </intent-filter> </activity>

Luego agrega el tema a tu styles.xml

<style name="PreferencesTheme"> <item name="android:windowBackground">@drawable/background_image</item> <item name="android:background">#FFEAEAEA</item> </style>

En el fragmento anterior hay un color de fondo y una imagen de fondo definidos para mostrar cómo hacerlo.


Vaya a res>values>styles.xml> y agregue este código a su <style > </style> El estilo debe ser el tema base de la aplicación en este @color/activ se agregan recursos de color a los colores.

<style name="app_theme" parent="@android:style/Theme"> <item name="android:windowBackground">@color/activ</item> <item name="android:windowContentOverlay">@drawable/title_bar_shadow</item> <item name="android:listViewStyle">@style/TransparentListView</item> </style>

Si usa el nombre de aplicación de la etiqueta de estilo, agregue así a su manifiesto

<application android:name=".XXXXXX" android:allowBackup="true" android:icon="@drawable/ic_launcher" android:label="@string/app_name" android:theme="@style/app_theme" > //here

Si solo quieres cambiar tu fondo


android:background no es un atributo disponible, de acuerdo con la documentation .

Es posible que el tema PreferenceActivity logre su cambio de color, aunque no lo he intentado porque quiero que mis preferencias se parezcan a las del resto de Android para mejorar la usabilidad de la aplicación.