studio - programacion android pdf 2018




cambiar el color de fondo de la preferencia (5)

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));

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.


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.





android-emulator